子執行緒與父執行緒的簡單使用
以及通過乙個結構體達到傳值的效果
#include
#include
#include
#include
#include
typedef
struct
exit_t;
//返回值為乙個結構體
void
*ftn
(void
*arg )
if( s>
1&& s<=3)
if( s>3)
printf
("i am %dth thread, and my id is %lu.\n"
,s+1
,pthread_self()
);pthread_exit((
void
*)retval)
;//或者 return (void *)retval; 兩者等價!
}int
main
(int argc,
char
*ar**)
}for
(i=0
;i)//**每個子執行緒
printf
("the %dth thread: a=%d, b=%c, str=%s.\n"
,i+1
,re->a,re->b,re->str)
;free
(re)
;//注意必須釋放malloc分配的空間,防止記憶體洩漏
re =
null
;//置空,防止使用幽靈指標
}printf
("in main: the pid is %d, and the tid is %lu.\n"
,getpid()
,pthread_self()
);pthread_exit((
void*)
1);}
於是發現乙個很好玩的結果:執行結果如下:
執行緒是從 5-1執行的
在for迴圈中,pthread_create函式後面加入
sleep(1);
執行結果變成如下:
執行緒是從 1-5執行
為什麼會有這樣的不同結果呢?
日後再研究。
2020/6/24 23:20
Linux應用 執行緒學習
執行緒相關函式 pthread mutex t g tmutex pthread mutex initializer pthread cond t g tconvar pthread cond initializer pthread t id 1,id 2 pid t pid 注意不要產生死鎖 pt...
基於Linux的 執行緒的簡單應用
首先,我們先來談談怎樣建立和關閉執行緒。關於執行緒的作用和意義這裡不再贅訴 程序的建立一般由fork 函式來完成,而執行緒的建立函式是 pthread create 函式完成 pthread create 函式的宣告如下 int pthread create pthread t thread con...
Linux應用開發之執行緒
這一節我們來學習一下執行緒,首先來看一下執行緒建立函式 int pthread create pthread t thread,const pthread attr t attr,void start routine void void arg 第乙個引數thread 這個引數儲存的是建立了的執行緒...