1. 程式人生 > >Linux執行緒的一些特點

Linux執行緒的一些特點

Linux的執行緒是通過程序來模擬的,也就是說Linux裡的執行緒本質上就是程序。

Linux的執行緒機制是通過核心和庫混合實現的,所以執行緒的實現在Linux的核心態和使用者態都有執行,核心實現執行緒/程序的排程,libpthread庫實現執行緒之間的同步。這也就是為什麼多執行緒程式需要連線一個libpthread庫的原因。

Linux程式如果用pthread_create啟動一個新的執行緒,實際上啟動了兩個輕量程序,第一個是管理執行緒,第二個才是真正做事情的執行緒。但是後續新建立的執行緒就不需要再建立管理執行緒了。

Linux中每個執行緒都有自己唯一的程序號,用getpid()獲得。但是從Linux Kernel 2.6之後,這個缺陷被消除了。

Linux這種用程序模擬執行緒的方式,和signal機制不一致,signal是發給程序的,但是在linux裡,往一個進車傳送signal,實際上只有一個執行緒處理這個signal。

Linux的程序機制實現的很好,程序間排程的overhead很小。