@ std::mutex
для меня каждый раз, потому что @Henri утверждает, что это (очевидно) часть стандарта C ++, поэтому вы можете полагаться на ее доступность повсюду.
Используя boost, на другой стороны, означает, что вы должны ссылаться на библиотеку boost. Хотя это широко доступно и предлагает ряд удобных дополнительных функций, он довольно тяжелый, и вы не хотели бы тянуть его только для этого.
Кроме того, std::mutex
может быть быстрее. Кросс-платформенный характер повышения означает, что вещи, которые полагаются на поддержку ОС (включая мьютексы), могут иногда быть менее эффективными. Но это не было основным фактором в моем мышлении.
Но если измерение производительности важно для вас, вы должны запустить свой собственный тест. Вы можете сделать это (примерно) через (скажем) Wandbox - они поддерживают библиотеку boost.