W .NET do synchronizacji dostępnych jest wiele mechanizmów. W dzisiejszym wpisie chciałbym przedstawić różnice między semaforem a muteksem. Na pierwszy rzut oka, wyglądają one identycznie. Przykład:class Program { staticvoid Main(string[] args) { Mutex mutex =new Mutex(); mutex.WaitOne(); Console.WriteLine("Sekcja krytyczna tutaj"); mutex.ReleaseMutex(); Semaphore semaphore=new Semaphore(1,1); semaphore.WaitOne(); Console.WriteLine("Sekcja krytyczn...
Strona głównaSztuka programowania
Sztuka programowania 4420 dni, 15 godzin temu 201 pokaż kod licznika zwiń
Podobne artykuły:
- Prymitywy synchronizacyjne - jak dobrze je znamy?
- Piotr Zieliński » TPL Dataflows – część III (bloki buforujące)
- Tworzenie wątków: TaskCreationOptions.DenyChildAttach, TaskCreationOptions.AttachedToParent
- Wydajność wątków w C#
- Piotr Zieliński » Code review: pula wątków a maksymalna liczba wątków
- Parallel.For – wielowątkowość nigdy nie była tak łatwa
- Piotr Zieliński » Code Review: Asynchroniczne strumienie danych
- Akka.net – pierwszy przykład
- Obsługa wielu tasków na raz w C#
- Piotr Zieliński » Code review: synchronizacja danych, przypisanie
- Piotr Zieliński » Wątki z puli–optymalna liczba wątków.