Если используемый компилятор реализует (по крайней мере, многопоточную часть) стандартной библиотеки C ++ 11, вы бы использовали std::mutex X;
или, возможно, std::recursive_mutex X;
, std::timed_mutex X;
или std::recursive_timed_mutex X;
, в зависимости ото том, какие возможности вы хотите (без указания, указывающего на обратное, я думаю, вы хотите std::mutex
).
В более старой библиотеке вы, вероятно, захотите использовать эквивалент pthreads
.Если вам нужна поддержка Windows (которая изначально не включает pthreads), вы можете использовать пакет pthreads-win32 Энтони Уильямса.У этого есть два положительных момента: во-первых, он является родным для Posix и Posix-подобных систем (например, Linux), и, во-вторых, хотя он использует несколько разные имена, основная идея почти такая же, как в стандартной библиотеке C ++ 11, этодолжно быть довольно легко изменить это, когда ваш компилятор поддерживает это.