Я читал про мьютексы, семафоры и критические разделы. Я понимаю, что мьютекс синхронизирует ресурс, так что только один поток обращается к нему за раз, когда семафор позволяет конкретному потоку получить доступ к ресурсу, но что делают критические разделы?Что такое критические разделы в потоках
ответ
При нормальном использовании критический раздел представляет собой раздел кода, который должен выполняться серийно - то есть только один поток может выполнять этот код в любой момент времени. Обычно вы выполняете это, защищая код с помощью семафора мьютекса.
В языке Windows критический раздел представляет собой структуру данных (и несколько связанных функций), которые реализуются на семафоре мьютексов, специфичных для процесса (т. Е. Тот, который используется только для блокировки между потоками в одном процессе, а не между отдельными процессами).
Существует два разновидности семафоров. Семафор мютекс позволяет одновременно выполнять только один поток. Счетный семафор позволяет указать максимальное количество потоков, которые могут выполняться одновременно. Семафоры Mutex являются более распространенным разнообразием, но семафоры, безусловно, также используют.
Спасибо, что имеет смысл – Rajeshwar
Является «семафором мьютекса» тем же, что и «двоичный семафор» (есть связанный [вопрос SO] (http://stackoverflow.com/questions/62814/difference-between-binary-semaphore и-мьютекс))? Иногда терминология может сбивать с толку. –
Нет, два не совсем то же самое. Заблокированный мьютекс можно разблокировать только тем, кто ранее заблокировал его. Заблокированный двоичный семафор может быть разблокирован кем угодно. –
- 1. Критические разделы Windows критические
- 2. Параллельные MSBUILD - критические разделы?
- 3. Рекурсивные критические разделы в Go
- 4. Критические разделы и остановка/разрушение?
- 5. Существуют ли критические разделы в следующем коде?
- 6. Критические разделы в Java с помощью потоков
- 7. Многопоточные и критические разделы Использование - C++
- 8. Критические разделы утечки памяти на Vista/Win2008?
- 9. Java синхронизирован: просто сохраняйте критические разделы маленькими?
- 10. критические разделы javascript или проблема семафора
- 11. Что такое листовая работа в потоках?
- 12. Что такое концепция дартс о потоках данных?
- 13. Критические разделы OpenMP в вызываемых классах (отличные от параллельного цикла)
- 14. Портирование потоков в окна. Критические разделы очень медленные
- 15. Что такое критические ресурсы для объекта std :: mutex
- 16. Могу ли я встраивать критические разделы? Является ли определение TCriticalSection?
- 17. Критические секции - контроль доступа
- 18. Что такое «rwxp» разделы в/Proc/PID/smaps (Linux)
- 19. Рамки и разделы импорта в project.json: что это такое?
- 20. Критические критерии в NHibernate
- 21. Критические аргументы метода RabbitMQ
- 22. Что такое нить ядра?
- 23. Что эквивалентно сканированию Haskell в потоках Java?
- 24. Что такое многопотоковая парадигма?
- 25. Что такое значение «// [#]!»
- 26. Что такое ТЕМА в Struts2
- 27. Что такое кодировка символов?
- 28. Что такое прерывание Threading?
- 29. Что такое уязвимости PKCS # 12?
- 30. Есть ли последствия для того, чтобы никогда не удалять критические разделы?
Вы говорите о Windows или вообще? –
Прочтите это - http://en.wikipedia.org/wiki/Critical_section, а затем вернитесь с более конкретным вопросом, если это все еще не имеет смысла. –
Мне кажется, прочитав эту статью в Википедии, что семафоры и критические разделы одинаковы? – Rajeshwar