Qt入门教程QObject篇线程同步

Posted 编程小鱼酱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt入门教程QObject篇线程同步相关的知识,希望对你有一定的参考价值。

同步线程

虽然线程的目的是允许代码并行运行,但有时线程必须停止并等待其他线程。例如,如果两个线程尝试同时写入同一变量,则结果未定义。强制线程彼此等待的原则称为互斥。它是保护共享资源(如数据)的常用技术。

Qt 提供了用于同步线程的低级基元以及高级机制。

低级同步基元

QMutex 是强制互斥的基本类。线程锁定互斥体以获取对共享资源的访问权限。如果第二个线程在已锁定时尝试锁定互斥体,则第二个线程将进入休眠状态,直到第一个线程完成其任务并解锁互斥锁。

QReadWriteLockQMutex类似,除了它区分“读取”和“写入”访问。当一段数据未写入时,多个线程同时读取它是安全的。QMutex强制多个读取器轮流读取共享数据,但QReadWriteLock允许同时读取,从而提高并行性。

QSemaphoreQMutex的推广,它保护一定数量的相同资源。相比之下,QMutex只保护一个资源。信号

以上是关于Qt入门教程QObject篇线程同步的主要内容,如果未能解决你的问题,请参考以下文章

Qt入门教程QObject篇线程和QOBject

Qt入门教程QObject篇Qt 模块中的线程支持

Qt入门教程QObject篇QObject类

Qt入门教程QObject篇QObject类

Qt入门教程QObject篇属性系统

Qt入门教程QObject篇多线程方案分析