class temp
{
boost::mutex mx;
void CriticalCode() {
boost::mutex::scoped_lock scoped_lock(mx);
//Do Something
return;
}
}
如果这个类被分配在堆上 (
temp* T = new temp()
),那么每个实例都是线程安全的吗?如果我把
boost::mutex mx
变成boost::mutex* mx
,并在构造函数中分配它,使其在堆上分配,那么代码也会是线程安全的吗?如果问题1和2的答案都是否定的,那么我该如何使每个实例都是线程安全的?