Si le thread est en mode attaché le main est donc en état d'endormissement.
Il n'est réveillé que sur réception de certains signaux en provenance de son thread lancé ou d'un process extérieur (chose assez rare sauf si vous l'avez explicitement programmé).
On peut donc simplifier en disant que le main ne sera absolument pas ordonnancé (il restera endormi) jusqu'à l'envoi du signal par le thread lors du pthread_exit.
A contrario avec un thread lancé en mode détaché, le main n'est pas endormi et donc poursuit son exécution. On a donc un ordonnancement de cette tâche.
Et si on veut être pointilleux je devrai vous reprocher le fait d'appeler un main un thread car ce n'est absolument pas la même chose suivant l'OS.

Sur certains OS le main sera identifié par l'id de process, tandis que sur d'autres OS il sera aussi identifié par un id de thread. Et on retrouve aussi d'autres OS qui fonctionnent par tâche et non par process/thread à l'ordonnancement.
Partager