Question

Je me demandais si ce serait toujours judicieux d'utiliser un mutex ou quand il n'y a semaphore qu'un seul thread?.

Merci pour votre aide.

Était-ce utile?

La solution

I protection de fil de conception dans mes composants, car ils sont des composants réutilisables et évolutifs conçus pour fonctionner dans un environnement que je peux raisonnablement anticiper. Plusieurs fois, ils sont d'abord utilisés dans un seul environnement de fil. Souvent, la portée de la mise en œuvre des agrandit pour inclure plus de threads. Ensuite, je ne dois pas chasser les ressources pour protéger des nouveaux scénarios d'accès.

Autres conseils

Mutex peut donner un sens, puisque Mutex peut être utilisé pour le partage large du système, au lieu du partage des processus à l'échelle interne. Par exemple, vous pouvez utiliser un Mutex empêcher une application d'être démarré deux fois .

Cela peut être un peu là-bas, mais disons que vous écrivez une fonction récursive et que vous voulez que chaque niveau d'enregistrer avec une ressource séparée. De cette façon, vous pouvez garder la responsabilité de nettoyer la ressource en un seul endroit (Le pool de ressources) .

On dirait une question piège. Techniquement, oui. Un mutex nommé peut être utilisé pour synchroniser des processus multiples contenant un seul fil dans chaque.

Vous pouvez utiliser system-wide semaphores (et même mutex) pour faire inter-process communication.

Vous pouvez signaler d'un processus monothread à un autre processus monothread par acquire()/release()-tion sur un sémaphore nommé, par exemple.

Dans le cas où l'environnement prend en charge les interruptions du système, il ajoute un comportement non-linéaire. Sémaphore peut être utilisé pour dormir dans le thread principal jusqu'à ce que les déclencheurs d'interruption.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top