C++ представляет собой отличный язык программирования, который принято ассоциировать с высокой производительностью, а также доступным управлением памятью и указателями. Тем не менее в нем также есть очень важные, но менее обсуждаемые компоненты, такие как потоки и мьютексы. Одна из наиболее значимых характеристик С++ — это широкие возможности контроля и определения точности при выполнении нескольких параллельных потоков наряду с безопасным распределением ресурсов между ними. К примеру, браузер, в котором вы сейчас это читаете, как раз задействует несколько потоков, облегчая одновременное выполнение действий и демонстрацию представлений.
В данной статье я опишу четыре рекомендации по использованию потоков и мьютексов в С++. Интерфейсы, о которых мы будем здесь говорить, относятся к версиям стандарта С++11 и выше. Ранее этой версии потоки формально в нем не определялись, и использовать можно было только интерфейсы потоков ОС, такие как POSIX |