【发布时间】:2013-05-07 12:52:22
【问题描述】:
如果我了解 C++ 编译器如何处理局部变量,那么 IsShutdownInProgress() 不需要任何锁定,因为 shutdownInProgress 静态变量将被放置在堆栈上。我说的对吗?
class MyClass
{
private:
// Irrelevant code commented away
static pthread_mutex_t mutex;
static bool shutdownInProgress;
public:
static void ShutdownIsInProgress()
{
pthread_mutex_lock(mutex);
shutdownInProgress = true;
pthread_mutex_unlock(mutex);
}
static bool IsShutdownInProgress()
{
// pthread_mutex_lock(mutex);
// pthread_mutex_unlock(mutex);
return shutdownInProgress;
}
}
【问题讨论】:
标签: c++ multithreading pthreads mutex