無限ループの関数を別スレッドにしてミューテックスで同期しようとしたけど、
デッドロックになったとか例外が出る
何とかならんでしょうか

#include <thread>
#include <mutex>
#include <iostream>
#include <windows.h>

std::mutex mutex;

void func()
{
for (;;) {
mutex.lock();
std::cout << "func." << std::endl;
}
}

int main()
{
mutex.lock();
std::thread thread(func);
std::cout << "mutex unlock." << std::endl;
mutex.unlock();
Sleep(1);
thread.detach();
std::cout << "detached." <<std::endl;
}