Обмен технологиями

Глубокое понимание блокировок в C.

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Оглавление

1. Базовая блокировка мьютекса (std::mutex)

2. Рекурсивная блокировка мьютекса (std::recursive_mutex)

3. Блокировка мьютекса с механизмом таймаута (std::timed_mutex)

4. Рекурсивная блокировка мьютекса с механизмом таймаута (std::recursive_timed_mutex)

5. Общая блокировка мьютекса также называется блокировкой чтения-записи (std::shared_mutex).

6. Общая блокировка мьютекса с механизмом таймаута (std::shared_timed_mutex)

7. Спин-блокировка

8. Резюме


1.Базовый мьютекс (std::mutex)

含义: std::mutexЭто самая простая блокировка мьютекса, в основном используемая для защиты критических разделов и обеспечения одновременного доступа только одного потока к общим ресурсам.

сцены, которые будут использоваться: используется, когда вам необходимо защитить общие ресурсы от одновременного изменения несколькими потоками.

Функции: простой и удобный в использовании, подходит для большинства сценариев; рекурсивная блокировка невозможна, а несколько попыток блокировки одним и тем же потоком приведут к взаимоблокировке.

Вот простой пример, показывающий, как использовать