關於多執行緒疑問 - Linux

Table of Contents


請問一下各位大大,

假設我擁有一台雙核心伺服器, 希望可以充分利用cpu資源,

如果該程式支援multi-process, 我可以啟動至少2個process的方式,

讓兩顆cpu都有充分使用,比較疑惑的是multi-thread,

如果是multi-thread, 在單一process的前提下,

是否可以達到兩個cpu都有充分使用的效果?

所謂多核心多執行緒的程式開發, 是做到同時多顆CPU使用嗎?

另外一個問題是我比較少看到同時使用multu-process又同時使用

multi-thread的情形,請問是為什麼?

--

All Comments

Doris avatarDoris2014-10-19
選一個就好了 實際上還是作業系統調度process
Caroline avatarCaroline2014-10-22
只要thread有分開 OS就能調度
所以multi-process multi-thread都一樣
David avatarDavid2014-10-23
不過multi-thread 要不是green thread&沒GIL等
Todd Johnson avatarTodd Johnson2014-10-23
我之前用matlab寫的script, 也都只有用到一個cpu..
Madame avatarMadame2014-10-26
要注意thread有kernel支援和user space library,前者才有
機會被排程到不同cpu
Edward Lewis avatarEdward Lewis2014-10-31
選thread的理由是需要行程內部通訊,若使用process而又需
要通訊,就變成要使用IPC(行程間通訊)
Daph Bay avatarDaph Bay2014-11-02
multi-process 又 multi-thread 的情形不少見啊...