#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.定義了幾個簡單的指令,對客戶端進行控制。功能特點 能同時處理最多五個客戶端的請求。...