143 votes

Qu'est-ce que la contention de fil ?

Quelqu'un peut-il expliquer simplement ce qu'est la contention de fil ?

J'ai fait des recherches sur Internet, mais je n'ai pas trouvé d'explication simple.

2voto

Aaron M Points 1585

Vous avez 2 fils. Le fil A et le fil B, vous avez aussi l'objet C.

A accède actuellement à l'objet C, et a placé un verrou sur cet objet. B doit accéder à l'objet C, mais ne peut le faire tant que A n'a pas libéré le verrou sur l'objet C.

1voto

Mark Wilkins Points 29291

Un autre mot pourrait être "concurrence". Il s'agit simplement de l'idée que deux ou plusieurs threads essaient d'utiliser la même ressource.

0voto

amilamad Points 318

La contention des threads est également affectée par les opérations d'E/S. Par exemple, lorsqu'un thread attend la lecture d'un fichier, cela peut être considéré comme une contention. La solution consiste à utiliser les ports d'achèvement des E/S.

0voto

AndreyT Points 975

La contention de verrou a lieu lorsqu'un thread essaie d'acquérir le verrou d'un objet qui est déjà lu. un objet qui est déjà acquis par un autre thread*. Jusqu'à ce que l'objet soit libéré, le thread est bloqué (en d'autres termes, il se trouve dans l'état état d'attente). Dans certains cas, cela peut conduire à une exécution dite "en série" qui affecte négativement l'application. qui affecte négativement l'application.

de Documentation sur dotTrace

0voto

snr Points 4881

Imaginez le scénario suivant. Vous vous préparez pour l'examen final de demain examen final de demain et vous avez un peu faim. Vous donnez donc à votre jeune frère dix dollars et lui demandez de vous acheter une pizza. Dans ce cas, vous êtes le fil principal et votre frère est un fil enfant. Une fois que votre commande est l'ordre est donné, vous et votre frère effectuez leur travail de manière concurrente (c'est-à-dire étudier et acheter une pizza). Maintenant, nous avons deux cas à considérer. Premièrement, votre frère ramène votre pizza et termine son travail pendant que vous étudiez. Dans ce cas, vous pouvez arrêter d'étudier et profiter de la pizza. la pizza. Deuxièmement, vous terminez votre étude tôt et vous dormez (c'est-à-dire que votre tâche assignée pour aujourd'hui - étudier pour l'examen final de demain - est terminée) avant que la pizza ne soit disponible. Bien sûr, vous ne pouvez pas dormir, sinon vous n'aurez pas l'occasion de manger la pizza. Ce que vous allez faire, c'est attendre que votre frère ramène la pizza.

Comme dans l'exemple, les deux cas donnent le sens de la rivalité.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X