Fork() et threads - C - Programmation
Marsh Posté le 15-07-2006 à 20:38:48
Au fait j'ai pensé à ceci :
pour des threads implémentés dans l'espace noyau (comme sous linux si je ne me trompe pas ) , le noyau peut voir lui même chaque thread comme des processus légers , et donc le fork ne concernerait qu'un seul des threads : le processus fils serait un processus monothread dont le thread principal exécute le code du thread depuis lequel le procesus parent à fait le fork()
par contre , pour des thread implémentés dans l'espace utilisateur, le noyau ne connait pas les threads et donc le fork() va dupliquer le processus dans son entièreté
Mais bon ce n'est qu'une hypothèse (quoique la deuxième me semble plus que probable...)
Marsh Posté le 15-07-2006 à 20:45:18
Je pense avoir vu la réponse ici :
http://64.233.183.104/search?q=cac [...] =clnk&cd=1
Citation : |
Marsh Posté le 18-07-2006 à 06:29:44
TriadPtale a écrit : Je pense avoir vu la réponse ici : |
tu aurais eu la même réponse par
Code :
|
Marsh Posté le 15-07-2006 à 20:31:17
Bonsoir à tous
J'ai une petite question qui peut sans doute surprendre, ou qui est peut être un peu idiote si la réponse est évidente.
Que se passe-t-il si je fais un fork() dans la procédure principale d'un thread (créé avec pthread_create() ) ?
A priori, l'entièreté du processus va se forker et l'éxécution du processus fils va continuer au sein de la suite du code constituant le thread qui a fait l'appel fork() .
Mais est ce bien comme ça ? a-t-il connaissance des autres threads ? Commencent-il tous à s'éxécuter dans le processus fils ? Ou bien a t on juste un nouveau processus (le fils) avec un seul thread ?
Merci