我是 C++ 和多线程的新手。最近在看Lock属性...
假设我有一个里面有互斥锁的类。当我在互斥对象上使用 lock 方法时,如何判断代码的哪一部分被阻塞/锁定?它是阻止/锁定类中的所有成员函数还是仅阻止/锁定我触发锁定的成员函数?
例如(process_data & udf_2)
class data_wrapper
{
private:
int x;
some_data data;
std::mutex m;
public:
template<typename Function>
void process_data(Function func)
{
std::lock_guard<std::mutex> l(m);
......
}
void udf_2(int x)
{
cout << "Value is " << x;
......
}
}
==============================
==============================
还有一个问题是,如果我看到一个模板类型T
,那么T&
and是什么意思T&&
?