類中pthread create 的執行緒入口函式

2022-06-30 01:03:09 字數 493 閱讀 6749

在類成員函式中如何呼叫pthread_create()呢?

#incldue int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg);
可看到入口函式的指標是void*型別的,通過 *arg傳遞引數

如果執行緒的入口函式設定為類的函式呢?

呼叫類中非static函式是有this指標的

此時可通過把入口函式設定為static函式,將this指標作為引數傳遞過去

再在static入口函式中通過this指標呼叫類中非static函式

示例:

#include class thread

;void thread::start()

void * thread::threadroutine(void *arg)

}

pthread create使用類中函式指標的

原有的程式是利用一台pc機的共享記憶體來實現兩個程式間的通訊的,最近要求改了,要設計2臺pc間這兩個的程式的通訊,想把通訊部分的程式做成類封裝起來。其中,由於要有多執行緒的部分。就是說,可能在乙個執行緒裡讀,在另乙個執行緒裡寫。所以得用到類成員函式的函式指標部分。為了驗證可行性,編寫了下面的程式 c...

類成員函式作為pthread create函式引數

近日需要將執行緒池封裝成c 類,類名為threadpool。在類的成員函式exec task中呼叫pthread create去啟動執行緒執行例程thread rounter。編譯之後報錯如下 spfs threadpool.cpp in member function int threadpool...

類成員函式作為pthread create函式引數

from 近日需要將執行緒池封裝成c 類,類名為threadpool。在類的成員函式exec task中呼叫pthread create去啟動執行緒執行例程thread rounter。編譯之後報錯如下 spfs threadpool.cpp in member function int threa...