QT中QWaitCondition 线程同步【注意事项】
函数doLongTimeWork(),里面构造了一个局部的QMutexLocker对象并锁住互斥量,当QMutexLocker被销毁的时候,互斥量将被自动解锁(因为QMutexLocker是个局部变量,当函数返回时它就被销毁),当执行函数doLongTimeWork()时,如果线程未运行,则调用start()开启线程,如果线程已经在运行了,则调用condition.wakeOne()唤醒线程。QMutex::lock相当于临界区锁,让处于锁中的资源不能被别的线程访问,即自己霸着不让别人用。
转载
2025-04-02 19:08:37 ·
17 阅读 ·
0 评论