假设我有这样的东西:
#include <iostream>
#include <Poco/Mutex.h>
Poco::FastMutex mutex;
int main()
{
for(int i = 0; i < 10; ++i)
{
Poco::FastMutex::ScopedLock lock(mutex);
// do some stuff...
}
return 0;
};
互斥锁是在每次迭代中获取还是只获取一次?如果我想保护整个循环,像这样将它移到外面会更好吗?
{
Poco::FastMutex::ScopedLock lock(mutex);
for(int i = 0; i < 10; ++i)
{
// do some stuff...
}
return 0;
}
最佳答案
每次迭代都会获取互斥量。
所以是的,您必须将锁移到循环外以保护整个循环。
关于c++ - 循环中的 Poco ScopedLock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23700596/