#include <iostream>
#include <thread>
#include <chrono>
#include <mutex>
using namespace std;
using namespace std::literals::chrono_literals;
using namespace chrono;
mutex m;
void t2()
{
while(true)
{
lock_guard<mutex> l(m);
this_thread::sleep_for(10ms);
}
}
int main()
{
thread tr1(t2);
this_thread::sleep_for(100ms);
lock_guard<mutex> l(m);
cout << "++++++++++++" << endl;
tr1.join();
}
Я удивлён - плюсики выскакивают секунд через 17, main поток конкретно голодает. А если паузу в t2 сделать == секунде, то дождаться плюсиков нереально. Сижу и думаю - кривые какие-то мьютексы, в некоторых ситуациях можно очень больно наступить на грабли.