第12章 posix執行緒
在第11章,我們看到在linux中程序是如何被處理的。這些多程序的特性很久以來就是類unix作業系統的特性。有時使用fork建立乙個新程序的代價實在是太大了。在這種情況下,使得乙個程式同時做兩件事情,或者至少看起來是如此是十分有用的。相對應的,我們也許希望以同樣的方式同時發生兩個或是更多的事情。這就是執行緒開始的地方。
在這一章,我們將會了解:
在乙個程序內建立乙個執行緒
在乙個程序的多個執行緒之間同步資料
修改乙個執行緒的屬性
在同乙個程序中由乙個執行緒控制另乙個
什麼是執行緒
編寫多執行緒的程式需要小心的設計。引入潛在的時間錯誤,或是在乙個多執行緒程式中未預料的共享變數引起的問題都需要考慮到。alan cox曾評價說,執行緒就是所謂的"如何同時射中自己的兩隻腳"。
除錯多執行緒程式要比除錯單執行緒程式困難得多,因為執行緒之間的互動非常難於控制。
將乙個大的計算分為兩部分並用作為不同的執行緒來執行這兩部分在單處理器機器上並不見得會執行快,因為只有這麼多的cpu週期,儘管並沒有其他的程式在嘗試執行,而且我們只有擁有多處理器或是超執行緒cpu,多執行緒的方法才會獲得益處。
POSIX執行緒(一)
第12章 posix執行緒 在第11章,我們看到在linux中程序是如何被處理的。這些多程序的特性很久以來就是類unix作業系統的特性。有時使用fork建立乙個新程序的代價實在是太大了。在這種情況下,使得乙個程式同時做兩件事情,或者至少看起來是如此是十分有用的。相對應的,我們也許希望以同樣的方式同時...
POSIX執行緒(一)
第12章 posix執行緒 在第11章,我們看到在linux中程序是如何被處理的。這些多程序的特性很久以來就是類unix作業系統的特性。有時使用fork建立乙個新程序的代價實在是太大了。在這種情況下,使得乙個程式同時做兩件事情,或者至少看起來是如此是十分有用的。相對應的,我們也許希望以同樣的方式同時...
POSIX執行緒(一)
第12章 posix執行緒 在第11章,我們看到在linux中程序是如何被處理的。這些多程序的特性很久以來就是類unix作業系統的特性。有時使用fork建立乙個新程序的代價實在是太大了。在這種情況下,使得乙個程式同時做兩件事情,或者至少看起來是如此是十分有用的。相對應的,我們也許希望以同樣的方式同時...