我有两个进程共享一个队列,该队列通过互斥锁和条件进行同步。我的一个进程中有以下代码。
named_mutex mutex(open_only, "MyMutex");
int main()
{
while(1)
{
scoped_lock <named_mutex> lock(mutex)
//do some processing
}
}
我的问题是互斥量是否在 while 循环中的所有调用中具有作用域,或者是否需要在每次 while 循环启动时获取?互斥锁的解锁范围是多少?似乎每次在 while 循环结束时互斥锁都会被解锁。
谢谢
最佳答案
它的行为与循环体中的任何其他局部变量完全相同:每次迭代都会创建和销毁一次。在这种情况下,每次迭代它将锁定和解锁互斥体一次。
关于c++ - 在 while(1) 循环中 boost 互斥锁的scoped_lock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17729606/