国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 操作系統 > 正文

線程之線程概念

2024-06-28 13:28:25
字體:
來源:轉載
供稿:網友
線程之線程概念

典型的UNIX進程可以看成只有一個控制線程:一個進程在同一時刻只做一件事情。有了多個控制線程(或簡稱為線程)以后,在程序設計時可以把進程設計成在同一時刻能夠做不止一件事,每個線程處理各自獨立的任務。這種方法有很多好處:

  • 通過為每種事件類型的處理分配單獨的線程,能夠簡化處理異步事件的代碼。每個線程在進行事件處理時可以采用同步編程模式,同步編程模式要比異步編程模式簡單得多。
  • 多個進程必須使用操作系統提供的復雜機制才能實現實現內存和文件描述符的共享,而多個線程自動地可以訪問相同的存儲地址空間和文件描述符。
  • 有些問題可以通過將其分解從而改善整個程序的吞吐量。在只有一個控制線程的情況下,單個進程需要完成多個任務時,實際上需要把這些任務串行化;有了多個控制線程,相互獨立的任務的處理就可以交叉進行,只需要為每個任務分配一個單獨的線程,當然只有在處理過程互不依賴的情況下,兩個任務的執行才可以穿插進行。
  • 交互的程序同樣可以通過使用多線程實現響應時間的改善,多線程可以把程序中處理用戶輸入輸出的部分與其他部分分開。

有些人把多線程的程序設計與多處理器系統聯系起來,但是即使程序運行在單處理器上,也能得到多線程編程模型的好處。處理器的數量并不影響程序結構,所以不管處理器的個數是多少,程序都可以通過使用線程得以簡化。而且,即使多線程程序在串行化任務時不得不阻塞,由于某些線程在阻塞的時候還有另外一些線程可以運行,所以多線程程序在單處理器上運行仍然能夠改善響應時間和吞吐量。

線程包含了表示進程內執行環境必需的信息,其中包括進程中標識線程的線程ID、一組寄存器值、棧、調度優先級和策略、信號屏蔽字、errno變量以及線程私有數據。進程的所有信息對該進程的所有線程都是共享的,包括可執行的程序文本、程序的全局內存和堆內存、棧以及文件描述符。

我們將要討論的線程接口來自POSIX.1-2001。線程接口(也稱為“pthread”或“POSIX線程”)在POSIX.1-2001中是一個可選特征。POSIX線程的特征測試宏是_POSIX_THREADS,應用程序可以把這個宏用于#ifdef測試,以在編譯時確定是否支持線程;也可以把_SC_THREADS常數用于調用sysconf函數,從而在運行時確定是否支持線程。

 

本篇博文內容摘自《UNIX環境高級編程》(第二版),僅作個人學習記錄所用。關于本書可參考:http://www.apuebook.com/


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 曲沃县| 凉山| 淄博市| 舟山市| 临泉县| 兴宁市| 大关县| 剑河县| 桓台县| 威信县| 当雄县| 巴彦淖尔市| 台北县| 峡江县| 弋阳县| 望江县| 舞阳县| 合江县| 潢川县| 梨树县| 阿尔山市| 阜南县| 巴青县| 云和县| 长岛县| 通海县| 明水县| 南岸区| 东光县| 修水县| 浪卡子县| 兰州市| 馆陶县| 庆安县| 博客| 六盘水市| 松溪县| 重庆市| 西丰县| 沈丘县| 临颍县|