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