Mutex lock: ce n' “blocage”?

J'ai lu sur le multithreading et de ressources partagées, l'accès et l'un des nombreux (pour moi) de nouveaux concepts est le mutex lock. Ce que je n'arrive pas à trouver est ce qui se passe réellement sur le fil qui trouve une "section critique" est verrouillé. Il est dit dans de nombreux endroits que plus le fil est "bloqué", mais ça veut dire quoi? Est-il suspendu, et il va le reprendre lorsque le verrouillage est annulé? Ou d'essayer de nouveau dans la prochaine itération de la "boucle"?

La raison pour laquelle je demande, c'est parce que je veux avoir un système fourni des événements (souris, clavier, etc.), qui (apparemment) sont livrés sur le thread principal, pour être traitées dans un très spécifique dans le cadre de l'exécution de la boucle de mon thread secondaire. Donc, quel que soit l'événement est livré, je file dans ma propre discbased. De toute évidence, la discbased besoin d'un mutex lock parce que c'est d'être modifiés par les deux threads. Le manque de puzzle-pièce est la suivante: qu'advient-il lorsqu'un événement est livré dans une fonction sur le thread principal, je veux de la file d'attente, mais la file d'attente est-il verrouillé? Sera le thread principal d'être suspendu, ou est-ce juste sauter le verrou et hors de portée (perte de l'événement)?

OriginalL'auteur zmippie | 2010-10-20