首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否每个关键部分都需要多个QMutex?

是否每个关键部分都需要多个QMutex?
EN

Stack Overflow用户
提问于 2012-12-30 18:43:18
回答 1查看 1.4K关注 0票数 0

我应该为我的所有临界区定义一个QMutex吗?或者我应该为每个临界区定义一个QMutex?

Qt中有没有像c夏普中的lock(object) {...}这样的相同概念?

EN

回答 1

Stack Overflow用户

发布于 2012-12-30 19:03:56

如果您将为所有临界区定义一个QMutex,那么QMutex::lock()将锁定对使用此QMutex对象的所有临界区的访问。如果您要使用许多QMutex对象,那么每个对象都将锁定相应的代码段。

假设你有:

代码语言:javascript
复制
QMutex mutex;

void method1()
{
 mutex.lock();
 //section1
 mutex.unlock();
}

void method2()
{
 mutex.lock();
 //section2
 mutex.unlock();
}

线程调用method1()或method2() section1和section2是否被锁定。在后一种情况下:

代码语言:javascript
复制
QMutex mutex1;
QMutex mutex2;

void method1()
{
 mutex1.lock();
 //section1
 mutex1.unlock();
}

void method2()
{
 mutex2.lock();
 //section2
 mutex2.unlock();
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14090040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档