Un blocage se produit lorsqu'une ressource est verrouillée par un thread et qu'en même temps un autre thread requiert la ressource. Ce problème se produit fréquemment dans les systèmes multitraitements.
Ce problème peut survenir lorsque deux threads ou plus attendent une ressource appartenant à un autre thread. Voici un exemple -
Fil un | Fil deux |
---|---|
Obtenez le verrou P | Obtenez le verrou Q | tr>
Demander le verrou Q | Demander le verrou P |
Thread un non Le verrou Q sera acquis car il appartient au thread deux. De même, le thread deux n’obtiendra pas le verrou P car son propriétaire d’origine était le thread un.
Une impasse peut également être une impasse à trois voies, ce qui se produit si trois threads et trois verrous sont communs. De même, des blocages à quatre, cinq voies et autres peuvent survenir.
La famine est le blocage permanent d'un ou plusieurs threads exécutables dans une application multithread.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!