我有2個進程共享一個由互斥鎖和條件同步的隊列。我在我的一個進程中有以下代碼。在while(1)循環中boost互斥體上的scoped_lock
named_mutex mutex(open_only, "MyMutex");
int main()
{
while(1)
{
scoped_lock <named_mutex> lock(mutex)
//do some processing
}
}
我的問題是互斥是否有範圍遍及while循環的所有呼叫或是否需要每次while循環開始被收購?它被解鎖的互斥體的範圍是什麼?似乎每次在while循環結束時都會解鎖互斥鎖。
感謝
你的答案不明確; while循環結束時的*是什麼意思?在每次迭代結束時,或者當你跳出循環時? – Praetorian
我用單數,一個循環,沒有所有的循環。確切的時間是當程序離開「while」範圍時,然後發現「break」,「continue」指令時,或者當它到達主體的末尾時。 –