Linux下C多執行緒程式設計初學

2021-06-22 19:32:01 字數 1811 閱讀 5874

抄襲的第乙個linux下c多執行緒併發的程式,要用到pthread.h標頭檔案~這還不算完,記得編譯時要用-lpthread來鏈結libpthread.a

原理很簡單,利用sleep(1)隔一秒列印一次,兩個執行緒分別列印"hello"和"world!\n"雖然寫的睡一秒,但是這兩個列印並不是均勻的交叉。

裡邊用到很多現成的執行緒的介面,pthread_create還有pthread_join(),還有pthread_t型別。除此,有乙個sleep()

[cpp]view plain

copy

/*hello,world--single thread*/

//記得-lpthread鏈結libpthread.a

#include

#include

#define num 6

intmain()  

void

print_msg(

void

* m)  

}  /*

* 函式原型:

* int pthread_create(pthread_t *thread,pthread_attr_t *attr,void *(*func)(void*),void *arg);

* 引數: thread 指向pthread_t型別變數的指標

* attr 指向pthread_attr_t型別變數的指標,或者為null

* func 指向新執行緒所執行函式的指標

* arg 傳遞給func的引數

* 返回值 0 成功返回

* errcode 錯誤

* 我們可以使用函式pthread_join等待某程序結束。

* 函式原型:int pthread_join(pthread_t thread,void ** retval);

* 引數: thread 所等待的程序

* retval 指向某儲存執行緒返回值的變數

* 返回值: 0 成功返回

* errorcode 錯誤

* 以上兩個函式都包含在標頭檔案pthread.h中。*/

來看第二個例子

[cpp]view plain

copy

/*thread_example.c :  c multiple thread programming in linux**/

#include 

#include 

#include 

#include 

#define max 10

pthread_t thread

[2];

//建立乙個執行緒的陣列。。。

pthread_mutex_t mut;//翻譯角度講,這是乙個訊號量

intnumber=0, i;  

void

*thread1()  

printf("thread1 :主函式在等我完成任務嗎?\n"

);  

pthread_exit(null);  

}  void

*thread2()  

printf("thread2 :主函式在等我完成任務嗎?\n"

);  

pthread_exit(null);  

}  void

thread_create(

void

)    

void

thread_wait(

void

)    if(

thread

[1] !=0)   

}  int

main()  

linux下C語言多執行緒程式設計

include include include include define max 10pthread t thread 2 pthread mutex t mut int number 0 i void thread1 printf thread1 主函式在等我完成任務嗎?n pthread e...

Linux系統下C 多執行緒程式設計

2017 0924 c 編譯執行 2017 0924 記錄執行時間 1 c 編譯執行 linux下,c 可執行檔案 out 編譯 c g ex1.cpp o ex1 ex1.cpp 為原始檔,名字字尾名隨意,ex1為可執行性檔案,預設為.out檔案,字尾名省略 c語言 gcc ex1.c o ex1...

多執行緒程式設計 c語言linux下

適用與linux系統 1.了解基本概念 程序 是計算機所執行的乙個任務的描述,是面向作業系統的最小單位,作業系統能執行很多程序 執行自己寫的乙份 程式,就是讓作業系統執行乙個自己程式的程序 作業系統會根據程式分配定量的資源 執行緒 面想程式 程序 的,把乙個程式分成多個執行緒可以實現並髮式,多工執行...