執行緒建立之後馬上就開始執行,與主線程一起執行,先後順序隨機,
函式pthread_join用來等待乙個執行緒的結束。標頭檔案 : #include
函式定義: int pthread_join(pthread_t thread, void **retval);
描述 :pthread_join()函式,以阻塞的方式等待thread指定的執行緒結束。當函式返回時,被等待執行緒的資源被收回。如果執行緒已經結束,那麼該函式會立即返回。並且thread指定的執行緒必須是joinable的。
引數 :thread: 執行緒
識別符號,即執行緒id,標識唯一執行緒。retval: 使用者定義的指標,用來儲存被等待執行緒的返回值。
返回值 : 0代表成功。 失敗,返回的則是錯誤號。
**中如果沒有pthread_join主線程會很快結束從而使得整個程序結束,建立的執行緒可能沒有機會開始執行或者執行完畢就結束了,加入pthread_join後主執行緒會一直等待直到等待的執行緒結束,自己才結束,使得建立的執行緒有機會執行。
並且在ubuntu中執行多執行緒函式時候 命令要寫成如下形式
$ gcc main.c -o main
-std=c99 -pthread (必須要,不然報錯)
$ ./main
ubuntu下C的多執行緒的執行緒同步
為什麼需要執行緒同步 因為在多執行緒環境中,執行緒之間由於競爭共享資源 臨界資源 容易引起資料不一致的問題。一般採用互斥鎖 互斥訊號量 解決,保證只有乙個執行緒進入臨界區。這篇文章就講互斥鎖,讀寫鎖 互斥量 mutex 主要用於保護共享資料,確保同一時間只有乙個執行緒訪問資料。互斥量從本質上來說是一...
多執行緒 多執行緒原理
我們首先要知道什麼是多執行緒,說白了就是多個執行緒,執行緒是什麼呢,其實就是程序執行的途徑,那麼說道這裡我們又引入了乙個新的名字,就是程序,那麼我們來看看什麼是程序,其實我們自己也能看到,啟動電腦的任務管理器,我們就可以看到程序選項,裡面是我們電腦所有的程序,我們會發現有很多的程序.簡單地說就是程序...
多執行緒(一) tomcat 多執行緒
web server允許的最大執行緒連線數還受制於作業系統的核心引數設定,通常windows是2000個左右,linux是1000個左右。1.編輯tomcat安裝目錄下的conf目錄下的server.xml檔案 maxthreads 150 表示最多同時處理150個連線,tomcat使用執行緒來處理...