Linux----線程重點篇

  • 線程是進程內部的一條執行路徑,每個進程至少有一條線程,即主線程。就是main函數的函數體,在主線程中可以通過線程庫創建其他線程(函數線程)。主線程和函數線程會同時向下運行(並行和併發

並行:同一時刻同時運行

併發:同一時段交替執行

  • 線程的實現方式主要有三種:用戶級、內核級、混合模式

用戶級線程是說線程的創建、銷燬、管理都在用戶空間完成,內核只會識別爲一個進程,一條線程。

優點:靈活性;操作系統不知道線程的存在,在任何平臺都可以運行;線程切換快,在用戶空間完成切換,不用陷入內核;不用修改操作系統,容易實現。

缺點:編程複雜,用戶必須自己進行線程管理,包括線程調度;如果一個線程阻塞,整個線程都會阻塞;不能使用對稱2多處理器。

內核級線程是線程的創建、銷燬、管理都有操作系統完成。內核線程使得用戶編程簡單,但是每次切換都得陷入內核,效率比較低。

混合模式是一部分以用戶級線程創建,一部分由內核創建,是一個多對多的關係。結合了用戶級線程和內核級線程的優點。

  • 線程庫的使用-----線程創建

pthread_create函數會創建一條新的函數線程,線程從pthread_fun函數入口地址開始執行,到這個函數結束。

 

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