多線程編程

  1. 線程是進程的進化產物,是進程內獨立的一條運行路線,是處理器調度的最小單元(別稱爲:輕量化進程)
  2. 一個進程可以有多個線程,也就是說可以有多個線程控制表及堆棧寄存器,但卻共享同一個用戶地址空間。
  3. 線程根據其調度者可以分爲用戶級線程、內核線程(輕量化線程)和核心機線程
  4. 用戶級線程主要解決的是上下文的切換問題,它的調度算法和調度過程全部由用戶自行選擇決定,在運行時不需要特定的內核支持
  5. 用戶級的線程的缺點:在一個進程中的多個線程的調度中無法發揮多處理器的優勢!(使用內核線程)
  6. 使用線程的優勢:使用線程可以大大加快上下文的切換速度,而且節省更多資源
  7. 使用線程的缺點:線程在用戶態和內核態都需要調度管理,增加實現的複雜度和引起優先級翻轉的可能性(一個多線程程序的同步設計與調試也會增加程序實現的難度!爲了節約系統調度的開銷,這點麻煩是值得的
  8. 線程編譯時選項:-pthread(線程函數庫) -lpthread(POSIX現成庫)
  9. 線程的同步機制:互斥鎖、信號量(一般而言,資源數爲一時使用互斥鎖、資源數爲多個時使用信號量)
  10. 互斥鎖分爲:快速互斥鎖(阻塞版本)、遞歸互斥鎖、檢錯互斥鎖(費阻塞版本)
  11. 線程的退出方式:a、線程運行完了自動退出;b、使用pthread_exit();(線程主動行爲退出)
  12. 線程創建函數中的第二個參數爲線性的屬性:當參數爲NULL是線程屬性爲默認參數、
  13. 線程參數包含:a、綁定屬性;b、分離屬性;c、堆棧地址;d、堆棧大小以及優先級。

翻譯
1. attribute:屬性

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