Linux 執行緒的應用

2021-10-07 11:56:43 字數 1355 閱讀 4245

子執行緒與父執行緒的簡單使用

以及通過乙個結構體達到傳值的效果

#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 這個引數儲存的是建立了的執行緒...