關於linux中多執行緒程式設計的一些初級問題

2021-06-16 15:18:43 字數 955 閱讀 8772

#include

#include

//#include

void * func_0()

void * func_1()

int threadproc()

if(pthread_create(&ttid[1], 0, (void *)func_1, null))

//for(i = 0; i < 2; i++)

//    pthread_join(ttid[i], 0);

return 0;

}int main()

{return threadproc()

執行上述程式,假設把這段程式儲存為1.c,一般會碰到以下三種錯誤:

1.如果你用gcc 1.c -o 1   它會報這麼乙個錯 undefined reference to 'pthread_create'  原因是:pthread 庫不是 linux 系統預設的庫,連線時需要使用靜態庫 libpthread.a,所以在使用pthread_create()建立執行緒,以及呼叫 pthread_atfork()函式建立fork處理程式時,需要鏈結該庫。  此時你用gcc 1.c -o 1 -lpthread  就不會報這樣的錯了。

2.隱式宣告與內建函式 『exit』 不相容   解決方法有以下兩種,一:注釋exit函式,然後改用return語句,可以正常編譯且執行。二:新增標頭檔案,stdlib.h可以正常編譯與執行。第一種我沒試過,第二種可以解決,因為這個標頭檔案中包含這個宣告:extern void exit (int __status) __throw __attribute__ ((__noreturn__));
3.在./1時你會發現無法在linux的顯示框中看到你程式中所要列印出來的東西,此時加上for(i = 0; i < 2; i++)
pthread_join(ttid[i], 0);
就可以解決。

Linux 多執行緒程式設計(一)

1 建立執行緒 有乙個比較特殊的執行緒,就是主線程或者稱為初始執行緒,它是當乙個程序被建立時建立的。而其他執行緒則是在初始執行緒中呼叫pthread create建立的。建立的新執行緒初始為ready狀態,等待處理器排程。2 執行執行緒 執行緒被建立後,就會執行phtread create的star...

關於多執行緒程式設計

原文 http blog.csdn.net newzhhsh archive 2008 08 19 2797302.aspx cpu是以時間片的方式為程序分配cup處理時間的,當乙個程序以同步的方式去完成幾件事情時,此程序必須完成了第一件事情以後再做第二件事,如此按順序地向cpu請求完成要做的事情。...

Linux多執行緒網路程式設計(一)

再次開始網路程式設計已經是乙個學期之後了。上個學期完成網路程式設計之後還沒有來得及總結,最近重新開始網路程式設計還遇到了不少的麻煩。直奔主題 在伺服器端實現的功能 1.通過tcp ip 協議,獲取客戶端傳送的檔案。2.定義了幾個簡單的指令,對客戶端進行控制。功能特點 能同時處理最多五個客戶端的請求。...