**:
執行緒之間共享資料,但又單獨執行;
qt執行緒qthread是平台無關的;
通常主線程從main開始執行,而在主線程中建立其他執行緒,其他執行緒派生於qthread;
1、執行緒優先順序
總共8個優先順序:執行緒優先順序從上到下越來越高。
constant
value
description
qthread::idlepriority 0
scheduled only when no other threads are running.
qthread::lowestpriority 1
scheduled less often than lowpriority.
qthread::lowpriority 2
scheduled less often than normalpriority.
qthread::normalpriority 3
the default priority of the operating system.
qthread::highpriority 4
scheduled more often than normalpriority.
qthread::highestpriority 5
scheduled more often than highpriority.
qthread::timecriticalpriority 6
scheduled as often as possible.
qthread::inheritpriority 7
use the same priority as the creating thread. this is the default.
2、執行緒管理
2.1、執行緒啟動
void
start
( priority priority = inheritpriority )
啟動執行緒執行,啟動後會發出started訊號。
2.2、執行緒執行
intexec
()
進入執行緒eventloop。
virtual void
run
()
執行緒入口。
2.3、執行緒退出
void
quit
()
相當於exit(0)。
void
exit
( int returncode = 0 )
呼叫exit後,thread將退出event loop,並從exec返回,exec的返回值就是returncode。
通常returncode=0表示成功,其他值表示失敗。
void
terminate
()
結束執行緒,執行緒是否立即終止取決於作業系統。
執行緒被終止時,所有等待該執行緒finished的執行緒都將被喚醒。
terminate是否呼叫取決於setterminationenabled
( bool enabled = true )
開關。
2.4、執行緒等待
void
msleep
( unsigned long msecs )
void
sleep
( unsigned long secs )
void
usleep
( unsigned long usecs )
bool
wait
( unsigned long time = ulong_max )
執行緒將會被阻塞,等待time毫秒。和sleep不同的是,如果執行緒退出,則wait會返回。
2.4、執行緒狀態
bool
isfinished
() const
執行緒是否已退出。
bool
isrunning
() const
執行緒是否還處於執行態。
2.5、執行緒屬性
priority
priority
() const
void
setpriority
( priority priority )
void
setstacksize
( uint stacksize )
uint
stacksize
() const
void
setterminationenabled
( bool enabled = true )
設定是否響應terminate()。
3、執行緒例項
當我們建立執行緒時,首先是從qthread派生類定義乙個新的執行緒,然後再使用該執行緒時,建立該執行緒類的物件。
例如:
class mythread : public qthread
;
voidmythread::run()
int main()
從qthread派生類時,需要重新實現qthread的虛函式run。
該函式是執行緒的入口,當我們使用start()啟動執行緒時,新執行緒就會執行run()。預設的run()函式就僅僅呼叫了exec()進入事件迴圈。
當然,定義自己的執行緒run()時,也可以不使用事件迴圈,
例如:
class thread : public qthread
;
thread::thread()
void thread::run()
void thread::stop()
QT執行緒(一) 執行緒類
執行緒之間共享資料,但又單獨執行 qt執行緒 qthread 是平台無關的 通常主線程從 main 開始執行,而在主線程中建立其他執行緒,其他執行緒派生於 qthread 1 執行緒優先順序總共8 個優先順序 執行緒優先順序從上到下越來越高。constant value description qt...
C 多執行緒(一) 執行緒管理
多執行緒是 此處省略一萬字,省略的文字詳細說明了什麼是多執行緒 其歷史及其發展 使用多執行緒的好處和缺點以及c c 對多執行緒的支援的歷史 c 標準庫自c 11標準以來開始支援多執行緒,多執行緒相關的類在thread標頭檔案中,所以使用請先必須 include 啟動乙個執行緒非常簡單,例程如下 in...
多執行緒技術 一 執行緒概述
程序 是應用程式的乙個執行例程,是應用程式的一次動態執行過程。執行緒 是程序中的乙個執行單元 是作業系統分配cpu時間的基本單元。windows是乙個支援多執行緒的系統。乙個程序可以包含若干個執行緒。多執行緒的概念 多執行緒 在同一時間執行多個任務的功能,稱為多執行緒或自由執行緒。多執行緒的優點 可...