web-dev-qa-db-fra.com

Questions d'entrevue sur la programmation de sockets et le multithreading

S'il vous plaît, n'importe qui peut me dire les questions, qui peuvent être posées dans une interview pour les sujets ci-dessous

  • Programmation de sockets
  • Multi-Threading

Une avance merci à tous ceux qui fournissent leur temps

22
Santhosh

En tant que responsable du recrutement, ma question de réseau préférée était la suivante:

Imaginez un utilisateur assis devant un PC connecté à Ethernet. Il a un navigateur ouvrir. Il tape "www.google.com" dans la barre d'adresse et appuyez sur Entrée.

Maintenant, dites-moi ce que le premier paquet à apparaissent sur l’Ethernet.

Les réponses possibles (de correction variable) incluent:

  • Je ne sais pas. 
  • Une requête HTTP Paquet. 
  • Un paquet syn TCP. 
  • Un paquet de requête DNS
  • Un paquet ARP.
  • Ça dépend.

Chacune des réponses révèle quelque chose au sujet de la compréhension de la personne de la mise en réseau en général, et IP et TCP en particulier. La discussion ultérieure peut révéler des volumes sur leur compréhension. (En supposant, bien sûr, que le questionneur possède une certaine expertise dans ce domaine).

35
Robᵩ

Programmation de sockets

  • Différence entre UDP et TCP.
  • Différence entre les sockets asynchrones et synchrones. 
  • Qu'est-ce qu'un paquet? 
  • Comment avez-vous déterminé si le paquet n'est pas arrivé malformé?.
  • Comment avez-vous déterminé où un paquet se termine et où un autre commence.
  • Qu'est-ce qu'un port.

Multi-Threading

  • Quelles primitives de synchronisation connaissez-vous, faites-vous la différence entre elles.
  • Qu'est-ce qu'une impasse et qu'est-ce qu'un livelock?.
  • Qu'est-ce qu'une condition de concurrence?.
  • Que signifie le terme "sans blocage"?.
  • Quelle est la meilleure façon de terminer un fil.
  • Pourquoi vous ne devriez pas utiliser les fonctions TerminateThread-esque.
27
arul

Quelques exemples de questions:

  • Pour les E/S asynchrones, une approche consiste à poser une question à laquelle différents clients peuvent interroger le serveur et provoquer des conditions de concurrence si elles sont implémentées via plusieurs threads (par exemple la mise en cache des résultats). Si la personne interrogée opte pour plusieurs threads, définissez les conditions de concurrence et vérifiez si elles mentionnent les E/S asynchrones en tant qu'option.
  • Quelle est la difference entre dead-lock et live-lock
  • Prototyper un serveur web
  • Prototyper un client Web
  • Quels sont les ports éphémères? Vous pouvez également décrire une application de contrainte de charge qui frappe un serveur avec 1 000 requêtes par seconde, mais cesse de faire des requêtes au serveur au bout de quelques secondes. après 2-4 minutes, l'application recommence à frapper le serveur avec 1000 requêtes.
  • Ecrivez un tampon producteur/consommateur sécurisé pour les threads auquel un ou plusieurs producteurs/consommateurs peuvent accéder
  • Quelle est la différence entre client/serveur et p2p
  • C'est plus de mise en réseau, mais il est utile de savoir ce qui se passe sous les appels de socket: décrivez la TCP négociation à trois voies
  • Quel est l'algorithme de Nagle? Quand est-ce souhaitable? Comment voudriez-vous désactiver cela?
  • Variante Linux: lors de l'écriture d'un démon, quels sont les blocs de construction de base (par exemple, forger un enfant et tuer le parent, fermer stdin/stdout/stderr, etc.)
  • Variante Windows: lors de l'écriture d'un service Windows, quels sont les blocs de construction de base.
  • Concevez un protocole pour la communication entre un client et un serveur pour l'envoi d'audio/vidéo. Comment le prolongez-vous pour la prochaine fonctionnalité/dernière fonctionnalité?.
  • Comment fonctionnent les fenêtres TCP et que puis-je faire pour optimiser les performances d'une application qui effectue de nombreuses lectures volumineuses sur plusieurs continents?.
8
terson

Qu'est-ce qu'une impasse et comment l'évitez-vous?

Quelques questions sur la programmation des sockets .

7
Eclipse

Demandez-vous parce que vous avez été entraîné pour interroger quelqu'un qui fera partie de votre équipe? Posez des questions qui sont basées sur des problèmes concrets que vous avez dû affronter dans vos opérations quotidiennes. Pensez au dernier bogue que vous aviez lié à la programmation de socket et transformez-le en une question d’entrevue.

La théorie, c'est gentil, mais vous voulez savoir que la personne qui rejoint l'équipe a de l'expérience dans les tranchées.

6
Andy Lester
  • Pourquoi un programme de socket typique nécessite-t-il le multi-threading?
  • Comment pouvez-vous parler à un groupe de connexions réseau différentes à la fois, à partir du même processus/thread? Astuce: Socket Asynchrone
  • Expliquez comment fonctionne le transfert de données Internet? ou Expliquez comment fonctionne un serveur Web? répondez-y en vous basant sur les concepts de programmation des sockets, Hint TCP Http etc.
5
Jobi Joy

Questions sur les sockets

  • Qu'est-ce qu'une prise de courant?
  • Quelles sont les différences entre accept et connect?
  • Quelles sont les différences entre close et shutdown?
  • Comment voulez-vous connect à www.google.com de manière asynchrone?

Questions multi-threading

  • Qu'est-ce qu'un fil et en quoi est-il différent d'un processus?
  • Quand pourriez-vous choisir d'utiliser des threads sur un seul système de processeur?
  • Comment pourriez-vous mesurer la surcharge de contexte entre les threads?
  • Comment feriez-vous une table de hachage MT-safe, tout en permettant une simultanéité maximale?
0
jxh