Comment nommer une situation lorsqu'un thread est verrouillé en attente pour toujours? J'ai trouvé plusieurs exemples sur le moment où deux fils entrent en collision, qui est appelé race condition:Posix Thread Locked: attente pour toujours
A race condition occurs when two or more threads
can access shared data and they try to
change it at the same time
Mais quand un fil est stuck waiting forever for another thread, est-il un terme spécifique pour nommer cette situation, ou encore est-il encore nommé comme condition de course, même si nous avons deux threads qui n'essaient pas d'accéder aux données partagées en même temps, mais à la place ... l'un des threads s'est bloqué en attente pour le 2ème thread ?
Cela s'appelle Deadlock. –
..ou éventuellement livelock, si le ou les threads sont à 100% CPU. – ThingyWotsit
Cela dépend de la raison pour laquelle le thread attend. Si le thread 1 utilise une ressource, puis commence à attendre qu'un autre soit libre, mais cette autre ressource ne sera jamais libre car elle a été revendiquée par le thread 2, qui attend maintenant le thread de ressources 1, c'est l'impasse (et il existe plusieurs versions de la même chose, mais elles sont toutes à peu près la même idée). Si l'un des threads attend l'autre et que l'autre ne se termine jamais pour une autre raison (par exemple une boucle infinie), c'est juste ... une boucle infinie. –