QWaitCondition 的正確使用方法

2021-09-19 05:07:56 字數 715 閱讀 5341

喚醒執行緒:

class worker : public qthread

};
主線程:
worker wt;
mutex.lock();
wt.start();
sleep(1000);
qdebug()<<"main wait";
con.wait(&mutex);
qdebug()<<"main unwait";
mutex.unlock();
qdebug()<<"main unlock";
穩定輸出:

in work  thread

main wait

begin wake

main unwait

main unlock

總結:  con.wait(&mutex)會釋放鎖,其所在的執行緒等待被喚醒, 其他的執行緒此時可以搶占鎖,經測試,等待被喚醒後會重新持有鎖,所以mutex.unlock()操作是必要的。

QWaitCondition 的正確使用方法

簡單用法 qwaitcondition 用於多執行緒的同步,乙個執行緒呼叫qwaitcondition wait 阻塞等待,直到另乙個執行緒呼叫qwaitcondition wake 喚醒才繼續往下執行。為了描述方便,這裡假設主線程呼叫send 往通訊口傳送乙個資料報,然後阻塞等待回包才繼續往下執行...

QT中多執行緒QWaitCondition例子解析

include mainwindow.h include ui mainwindow.h include include include include qmutex mutex qwaitcondition waitcon int number 6 int count 0 void mythrea...

container of 的的的原理

另外一篇,同樣精彩,揭開linux核心中container of的神秘面紗 華清遠見嵌入式學院講師。在linux 核心中有乙個大名鼎鼎的巨集container of 這個巨集是用來幹嘛的呢?我們先來看看它在核心中是怎樣定義的。呵呵,乍一看不知道是什麼東東。我們先來分析一下container of p...