c 執行緒建立呼叫類中函式

2021-10-05 19:39:40 字數 712 閱讀 5061

在編寫eventloopthread類中,需要在類中創造新執行緒並呼叫類中的函式,卻發現pthread_create函式報錯,引數不匹配。

例子如下:

class

eventloppthread

void

* eventloopthread::

func

(void*)

//省略實現

void eventloopthread::

create_pthread()

在網上查過後發現不匹配的原因是類中函式func的函式型別是『void* (eventloopthread::)(void*),而不是(void*)(func)(void),類中的函式會自帶乙個this類標識(指標)

解決方法:

將func函式宣告為static全域性函式,再傳入this指標,若要對類中非靜態變數進行呼叫,用this指標間接呼叫。

修改後的**:

class

eventloppthread

void

* eventloopthread::

func

(void

*x)//省略實現

void eventloopthread::

create_pthread()

C 類中建立執行緒

經常會遇到需要在類中建立執行緒,可以使用靜態成員函式,並且將類例項的指標傳入執行緒函式的方式來實現。實現 如下 類標頭檔案 ctestthread.h include include includeclass testthread 類原始檔 ctestthread.cpp include ctest...

C 多執行緒中呼叫python api函式

收藏今 天看了近一天關於多執行緒的應用中,如何安全呼叫python方面的資料,開始的時候看的簡直頭大如斗,被python語言的全域性鎖 global interpreter lock 執行緒狀態 thread state 等都有點繞暈了,後來經過各方面文章和幫助文件的相互參考,發現對於2.4 2.5...

C 如何在類中建立執行緒

一般我們在啟執行緒時,都是把執行緒函式寫成全域性函式來使用,但是如果要把執行緒操作寫成類,執行緒函式放在類裡面在c 編譯會不通過。在c 類中建立執行緒會有報錯 下面以乙個簡單的類進行舉例 external.件 ifndef radio external h define radio external...