Le verrou que vous utilisez dépend de votre plate-forme, mais il aura généralement une certaine saveur de mutex. Sur Windows, vous utiliseriez une section critique et dans .NET, vous utiliseriez un moniteur. Je ne suis pas très familier avec les mécanismes de verrouillage sur d'autres plates-formes. Je resterais loin des approches sans verrou. Ils sont très difficiles à programmer correctement et les gains de performance ne sont souvent pas aussi bons que vous pourriez vous y attendre.
Les verrous deviennent un goulot d'étranglement dans votre programme lorsqu'ils sont soumis à de fortes contraintes. C'est-à-dire qu'un très grand nombre de threads tentent tous d'acquérir le verrou en même temps. Cela gaspille beaucoup de cycles CPU lorsque les threads sont bloqués et que le système d'exploitation passe de plus en plus de temps à passer d'un thread à l'autre. Ce genre de problème se manifeste le plus souvent dans le monde des serveurs. Pour les applications de bureau, il est rare que les verrous posent un problème de performance.
Votre question est un peu claire. Pouvez-vous répéter, s'il vous plaît? –
Est-ce une question de devoirs? Si oui, merci de marquer comme tel. – derobert