Re: thread (執行緒) definition??
※ 引述《ashkenazy (有中出無懦夫)》之銘言:
: 放下無謂的爭擾,我也從來沒有質疑過教科書的說法
: 第一篇回文時也把教科書的說法與實作列出來,這也是因為我尊重教科書的說法
: 只是剛好原po問「一個程式如何區分出thread」
: 我就回答「Linux並沒有區分所謂的process或thread」
: 現在回來看這個答案,還算中肯吧? 囧rz
這樣的回答是陳述了一部分事實,卻更容易讓人誤解。
就多數作業系統的核心實作而言, process 就是一種 kernel thread. 特別去區分
thread 和 process 的差異是多此一舉。
但我們一般所講的 thread 主要是指 user thread, 就是一個 process 裡有好幾個
thread 的狀況。在作業系統核心不直接提供 user thread 的狀況下,於是就有了
pthread 程式庫來分擔此一需求。
pthread 的 'p' 就是 pseudo 的意思,一般實作是在呼叫 I/O 函式或有系統插斷時
切換到其他 user thread 繼續執行。我沒有閱讀原始碼,詳細的情況還得由其他人
補充。
Thread Library 是 POSIX 標準的一部分,所以也是作業系統的一部分,有 pthread
library 就表示作業系統有 user thread, 只是不經由系統核心提供,而是透過系統
程式庫來提供。
這個 thread 議題講下去,還有硬體層級的 thread, 又和作業系統的 kernel thread
不同了。
這個字已經衍生出好些不同的意思了,不過就原題而言,應該是指 user thread. 用
kernel thread 來回答不能說很中肯喔。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.116.0.145
推
01/23 18:13, , 1F
01/23 18:13, 1F
→
01/23 18:14, , 2F
01/23 18:14, 2F
推
01/23 18:23, , 3F
01/23 18:23, 3F
→
01/23 18:23, , 4F
01/23 18:23, 4F
討論串 (同標題文章)
CSSE 近期熱門文章
PTT數位生活區 即時熱門文章