Je me demande quel genre de questions d'entrevue ont été posées à un développeur senior ou à un consultant technique sur le multithreading.
Veuillez me fournir certaines des questions d'entrevue qui ont été posées lors de l'entretien sur le multithreading si possible, veuillez poser les questions basées sur le scénario avec quelques questions théoriques. Comme j'ai appris après discussion avec certaines personnes qu'un intervieweur pourrait vous donner un scénario et vous demander de le mettre en œuvre?
@ Veuillez ajouter les questions spécifiques que vous avez déjà rencontrées ou posées à l'autre personne lors de l'entretien, sauf en mentionnant uniquement les concepts, car les personnes passent par les concepts et éprouvent toujours des difficultés à gérer les questions de l'entretien. question pourrait effectivement aider la personne à prendre une longueur d'avance pour le jour J
Je pourrais demander au candidat de décrire au moins 2 ou 3 façons différentes de créer des applications multithread en C #.
Utilisation explicite de la classe Thread
Threadpool
Bibliothèque parallèle de tâches
Classe d'action avec fonctions lambda
BeginInvoke
Contexte
Je voudrais également savoir comment on pourrait se retrouver avec une application multithread sans jamais créer explicitement un thread.
Vous pouvez également souhaiter parler des méthodes de création de code rentrant.
fermer à clé
Monitor.Wait et Monitor.Pulse
ManualResetEvent
classes/méthodes statiques
D'autres informations pourraient provenir d'un article que j'ai écrit ici .
Enfin, je pourrais demander des expériences où ces leçons ont été apprises au lieu d'une simple décharge de cerveau d'un livre. Un développeur senior aura de nombreuses expériences qui devraient fournir un aperçu de leurs capacités de découverte et de résolution de problèmes.
Une de mes questions préférées:
Une question intéressante qui ne figure actuellement pas dans une autre réponse:
En plus de toutes les autres réponses, je présenterais également au candidat quelques exemples de sujets et lui ferais remarquer où les problèmes pourraient survenir.
Certains exemples incluraient des conditions de concurrence, des verrouillages ou le fait de faire face à la conversion d'un problème de thread unique à multithread. J'aime particulièrement suivre ce dernier avec une revue de sa conception, en lui laissant expliquer pourquoi, comment et combien d'augmentation de performances améliorerait-il.
J'ai toujours aimé cette matrice: http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm
Il ne vous fournit pas une boîte de questions prête mais il fournit un ensemble assez exhaustif de champs à partir desquels vous pouvez (devriez) choisir des questions pour classer un candidat.
GJ
Une bonne méthode que j'ai trouvée consiste à créer quelques classes fictives qui auraient besoin de diverses formes de multithreading, comme utiliser Invoke, WaitHandles, Semiphores, etc. puis imprimer les classes et discuter des options avec le candidat. Il donne à la personne interrogée plus de commentaires sur la façon dont le candidat pense et donne au candidat de proposer des références à des projets précédents, etc.