为什么不能将互斥量传递给线程?
Why is passing mutex to thread not possible?
将互斥量引用传递给线程会导致编译错误。为什么不可能(我有多个线程使用同一个共享变量),我该如何解决?
#include<iostream>
#include<thread>
#include<mutex>
void myf(std::mutex& mtx)
{
while(true)
{
// lock
// do something
// unlock
}
}
int main(int argc, char** argv)
{
std::mutex mtx;
std::thread t(myf, mtx);
t.join();
return 0;
}
将互斥量引用传递给线程会导致编译错误。为什么不可能(我有多个线程使用同一个共享变量),我该如何解决?
#include<iostream>
#include<thread>
#include<mutex>
void myf(std::mutex& mtx)
{
while(true)
{
// lock
// do something
// unlock
}
}
int main(int argc, char** argv)
{
std::mutex mtx;
std::thread t(myf, mtx);
t.join();
return 0;
}