線程概念

線程是運行在一個進程的基本執行流。

線程是進程調度的基本實體。

線程強調共享,但也有自己的私有資源。

爲什麼要有線程?

1.進程雖然獨佔資源,但對進程間通信維護比較不好,切換成本較大。

2.線程切換成本較小,線程運行在進程內部。


創建線程:

返回值:成功返回0,失敗返回錯誤號。以前學過的系統函數都是成功返回0,失敗返回-1,錯誤號保存在全局變量errno,pthread庫的函數都是通過返回值返回錯誤號,雖然每個線程也都有一個errno,但這是爲了兼容其它函數接口提供的,pthread庫本身並不使用它,通過返回值返回錯誤碼更加清晰。

在一個線程中調用pthread_create()創建新的線程後,當前線程從pthread_create()返回繼續往下執行,而新的線程所執行的代碼由我們傳給pthread_create的函數指針start_routine決定。

終止線程:

1.從線程函數return。這種方法對主線程不適用,從主函數return相當於調用exit。

2.一個線程可以調用pthread_cancel()終止同一個進程中的另一個線程。

3.線程可以調用phread_exit()終止自己。

線程等待:

返回值,成功返回0,失敗返回錯誤碼。

分離線程:

線程是可結合的或者是可分離的,線程創建時默認是結合的。當前線程一旦被分離與主線程無關。

wKiom1eXH3GTRvK4AADsxlnMDko344.png-wh_50

wKioL1eXH3KwCSCAAACfX2-ge6s713.png-wh_50



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章