Czytałem o muteksie, semaforach i sekcjach krytycznych. Rozumiem, że muteks synchronizuje zasób tak, że tylko jeden wątek uzyskuje do niego dostęp w czasie, gdy semafor pozwala konkretnym brakom wątków na dostęp do zasobu, ale co robią sekcje krytyczne?Co to są sekcje krytyczne w wątkach
Odpowiedz
W normalnym użyciu sekcja krytyczna to sekcja kodu, która musi być wykonywana szeregowo - tzn. Tylko jeden wątek może wykonać ten kod w dowolnym momencie. Zwykle robisz to, chroniąc kod semaforem mutex.
W języku Windows, sekcja krytyczna to struktura danych (i kilka powiązanych funkcji) implementujących specyficzny dla procesu semafor mutex (tj. Taki, który jest używany tylko do blokowania wątków w pojedynczym procesie, a nie pomiędzy oddzielnymi procesami).
Istnieją dwie odmiany semaforów. Semafor mutex pozwala na wykonanie tylko jednego wątku naraz. Zliczany semafor pozwala określić maksymalną liczbę wątków, które można wykonywać jednocześnie. Semafory Mutex są bardziej powszechną odmianą, ale zliczone semafory zdecydowanie mają również zastosowanie.
Dzięki, że ma sens – Rajeshwar
Jest "semafor mutex" to samo, co "semafor binarny" (istnieje powiązane [pytanie SO] (http://stackoverflow.com/questions/62814/difference-between-binary-semaphore -and-mutex))? Terminologia może czasem być myląca. –
Nie, dwa nie są takie same. Zablokowany muteks może zostać odblokowany tylko przez tego, kto wcześniej go zablokował. Zablokowany semafor binarny może zostać odblokowany przez kogokolwiek. –
- 1. Przenoszenie wątków do okien. Sekcje krytyczne są bardzo powolne.
- 2. Co to są `+:` i `-:`?
- 3. Co to są fortuny?
- 4. Co to są pojęcia?
- 5. Co to są CoreDataGeneratedAccessors?
- 6. Co to są RFC?
- 7. Co powoduje "Błędy krytyczne połączenia wewnętrznego"
- 8. Co to są pliki FTL
- 9. Co to są opcje + FollowSymLinks?
- 10. Co to są czyste zmienne?
- 11. Co to są moduły CSS3?
- 12. Co to są połączenia ZygoteInit?
- 13. Co to są operatorzy zniesione?
- 14. Co to są hipotetyczne indeksy?
- 15. Co to są ograniczone szablony?
- 16. Co to są tło, pierwszy plan i główne wątki?
- 17. Co to są "pilne dane"?
- 18. Co to są Iteratory SCARY?
- 19. Co to są błędy xsession?
- 20. Co to są opcje skrótów?
- 21. Co to są pojemniki w Javie
- 22. Co to są klasy encji w php
- 23. Co to są pliki `rc` w nodejs?
- 24. Co to są instrukcje "jest" w D?
- 25. Co to są dostawcy w Angular2?
- 26. Co to są CocoaPods w systemie iOS?
- 27. Co to są generics w C#?
- 28. Co to są "wymiary syntetyczne" w Blaze?
- 29. Co to są "właściwości" w Groovy?
- 30. Co to są flagi wyliczające w TypeScript?
Mówisz o systemie Windows lub ogólnie? –
Przeczytaj to - http://en.wikipedia.org/wiki/Critical_section, a następnie wróć do bardziej konkretnego pytania, jeśli nadal nie ma to sensu. –
Wydaje mi się, że po przeczytaniu tego artykułu wikipedia semafory i sekcje krytyczne są takie same? – Rajeshwar