Skip to Content
LINUX系統程式設計 第二版
book

LINUX系統程式設計 第二版

by Robert Love
December 2013
Intermediate to advanced
496 pages
8h 57m
Chinese
GoTop Information, Inc.
Content preview from LINUX系統程式設計 第二版
執行緒
|
231
Linux 本身並不支援協同常式或纖程,同樣地可能是由於它的環境切換速度已經很快,
所以不需要使用效能優於核心執行緒的結構。Linux 中,Go 程式語言為類似協同常式的
結構提供了語言層級的支援,稱為 Go-routine。協同常式啟用了不同的程式設計典範以
I/O 模型,雖然超出了本書的範圍,但值得考慮看看。
執行緒模式
建構執行緒化的應用程式時,首先且最重要的步驟是決定執行緒模式(threading
pattern),也就是應用程式的處理方式以及 I/O 模型。有無數的抽象及實作細節需要決
定,但是有兩個基本的程式設計模式,你必須選擇一個:
每連線執行緒
thread-per-
connection
)與
事件驅動
event-driven
)。
每連線執行緒
每連線執行緒
thread-per-connection
)是一種程式設計模式,此模式中,每個工作單位
會指派給一個執行緒,而且在工作單位執行期間,該執行緒至多分配一個工作單位。你
的應用程式的工作會被分解成各個工作單位:一項請求、一條連線…等等。此處將會使
用「連線」來進行討論,因為它是描述此模式時,常用的術語。
你也可以使用「運行到完成為止」來描述此模式。也就是,一個執行緒會取得一條連線
或一項請求,而且會處理到完成為止,這個時候執行緒才有辦法再去處理另一項請求。
這會對 I/O 造成值得注意的影響,事實上,I/O 是此模式與事件驅動模式之間的一個大
差異。在每連線執行緒中,阻擋式 I/O —事實上,任何 I/O —可以成為「擁有」執行緒 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

優雅的SciPy|Python科學研究的美學

優雅的SciPy|Python科學研究的美學

Juan Nunez-Iglesias, Stéfan van der Walt, Harriet Dashnow
C++语言导学(原书第2版)

C++语言导学(原书第2版)

本贾尼 斯特劳斯特鲁普

Publisher Resources

ISBN: 9789862769812