C 類之執行緒管理

2021-07-31 09:35:19 字數 1667 閱讀 9735

最近在寫上位機,要用到qt,所以自己寫的關於執行緒管理的類繼承了qt裡面的類。類內容如下:

class tinythread : public qobject

;

首先看一下結構體tinythreadprivate裡面包含哪些內容

struct tinythread::tinythreadprivate

~tinythreadprivate()

void runit()

else

isrunningnow = false;

if( func && isautodelete )

delete pfuncdata;

} void init_run() }

void kill()

handle = 0;

} void suspend()

void resume()

void waitforclose( int waittime = infinite )

handle = 0;

} bool isrunningnow; //執行緒是否在執行

tinythreadfunc func; //函式指標

void *pfuncdata; //資料指標,執行上面函式需要用到的引數

bool isautodelete; //是否自動刪除上面的資料

handle handle; //執行緒控制代碼

tinythread* powner; //類指標

private:

static unsigned int __stdcall tinythreadcallback( lpvoid thisptr )

};

結構體包含的引數有,**裡有注釋

結構體的建構函式初始化了4個引數變數,析構函式為空

void runit()
如果函式指標不為0,則執行指標函式指向的函式;執行緒是否執行標誌設定為false,並釋放資料指標。

void suspend()
掛起執行緒

void resume()
恢復執行緒

void waitforclose( int waittime = infinite )
等待執行緒執行完畢,釋放執行緒控制代碼,將執行緒控制代碼置0.

void kill()
強制關閉執行緒,釋放執行緒控制代碼,執行緒是否執行標誌設定為false,執行緒控制代碼置0

void init_run()
等待上乙個執行緒執行完畢(釋放執行緒控制代碼,將執行緒控制代碼置0.),建立乙個新的執行緒,執行緒被掛起,執行緒是否執行標誌設定為true,恢復執行緒

static unsigned int __stdcall tinythreadcallback( lpvoid thisptr )

然後看一下tinythread類的建構函式

tinythread::tinythread()

為雷內結構體變數申請記憶體空間,並將類指標賦給結構體變數內的乙個類指標變數

執行緒管理之Thread類相關方法簡介

currentthread 靜態方法 currentthread 方法可返回 段正在被那個執行緒呼叫的資訊。簡單案列 列印main 方法,正在被那個執行緒呼叫 package com.zzg.thread import com.zzg.obj.threadobj1 public class thre...

c 併發程式設計(二) 管理執行緒 thread類

同上節所講,執行緒是通過構造std thread物件來開始的 void do some work std thread my thread do some work 使用可呼叫型別 include includeclass func int main 如果你不做處理,在主線程結束後,thread物件...

C 標準執行緒庫之當前執行緒管理

有時需要對當前執行的子執行緒進行一些額外的處理,如 使執行緒休眠一段時間,再次排程等。c 11標準庫提供了管理當前執行緒的函式,這些函式都定義於命名空間this thread include inline thread id std this thread get id 返回當前執行緒id incl...