關於向執行緒的執行函式傳遞乙個引數和多個引數

2021-10-12 07:31:26 字數 1715 閱讀 9879

1.執行緒建立

#include

intpthread_create

(pthread_t *restrict tidp,

const pthread_attr_t *restrict attr,

void*(

*start_rtn)

(void*)

,void

*restrict arg)

;// 返回:若成功返回0,否則返回錯誤編號

引數說明:

第乙個引數為指向執行緒識別符號的指標。

第二個引數用來設定執行緒屬性。

第三個引數是執行緒執行函式的起始位址。

最後乙個引數是執行函式的引數。

另外,在編譯時注意加上-lpthread引數,以呼叫靜態鏈結庫。因為pthread並非linux系統的預設庫

#include

#include

// int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *arg);

void

*func

(void

*arg)

intmain()

pthread_join

(t1,

(void**

)&pret)

;//指標pret指向的是執行緒執行函式static char *ret的位址

printf

("main: return data=%s\n"

,pret)

;return0;

}

#include

#include

#include

#include

// int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *arg);

struct text

;void

*func

(void

*arg)

intmain()

;/* struct text param = ;

memset(param.c,0,sizeof(param.c));

strcpy(param.c,"sadsdad");

param.d = (char *)malloc(128);

strcpy(param.d,"dada");

*///另一種寫法

struct text param =

;int ret =

pthread_create

(&t1,

null

,func,

(void*)

¶m);if

(ret ==0)

pthread_join

(t1,

(void**

)&pret)

;printf

("main: return data=%s\n"

,pret)

;// free(param.d);//malloc堆區的記憶體釋放,防止記憶體洩漏

return0;

}

關於ng路由的傳參問題 傳遞乙個,多個引數

在ng的頁麵條轉傳引數的方法,ui sref,state ui sref 用於html頁面進行單頁面的跳轉 state 用於js 中跳轉 重點 明確傳遞方,接受方 傳遞單個引數 對於傳遞方 傳遞方 ui sref home.ideas.edit 或者 state.go home.ideas.edit...

關於執行緒的乙個練習

下面是乙個我們學習執行緒的乙個小例子,大家看看。實現兩個執行緒,a為控制線程,b為工作執行緒,要求 1 從a中讀入乙個整數 2 根據a中讀入的數字計算其階乘,同時將結果輸入到d盤根目錄下的1.txt檔案中。該結果需要重複寫入1000次,但當使用者輸入的整數發生改變時,中斷寫入,並計算新數字的階乘,將...

多執行緒其中乙個沒執行 關於pthread join

剛才發現乙個問題。其實很簡單。為了驗證多執行緒寫了乙個雙線程 分別列印一句話。如下 include include void thread void int main void for i 0 i 3 i printf this is the main process.n return 0 編輯之後...