Что важно знать
- Гонка данных: два потока читают и пишут одно значение без синхронизации — результат зависит от порядка выполнения.
- Мьютекс — один поток в критической секции; семафор — не больше N.
- Взаимная блокировка: потоки ждут ресурсы друг друга; лечится единым порядком захвата и таймаутами.
- Атомарные операции (CAS) — без блокировок для простых случаев.
- Видимость: без синхронизации поток может не увидеть запись другого потока.
- Пул потоков переиспользует потоки; размер зависит от того, ждут ли задачи ввода-вывода.