fedora wrote:
可能 X86 先天架構的包袱,沒法做到
手機 ARM 架構處理器,都是超多核心的,沒聽過有軟體只能單核心運行的。
...(恕刪)
不是因為這個。
說起來並不是"只能單核心運行的軟體",而應該說是絕大部分計算工作落在單一個執行緒/單一核心的軟體,但這不代表程式中就沒有其他執行緒、執行過程中沒有動用到其他核心,只是動用時間很短。
這種軟體在ARM或是x86上,當然都存在。就像樓下網友舉的例子,還有許多工作是在不知道前一項結果前,是無法計算下一項的,或是必須根據IF (某條件成立) THEN {執行A工作} ELSE {執行B工作},其中的(某條件成立)與否,才能決定執行A段程式碼或是B段程式碼,這是計算工作本質循序性跟相依性的問題,並不是用了ARM就能神奇的解決問題。
再舉例來說,不管是啥軟體,基本上處理人類輸入/軟體操作界面的工作,就一定是跟計算工作分開放在不同的執行緒,不然一旦開始計算,使用者根本就無法操作軟體界面,Windows軟體從Win95(pre-emptive multi-threading)年代開始,就已經必須是這樣設計了。
既然在不同的執行緒,不管是Linux或是Windows,在多核心處理器上,就能夠把同一個程式的不同的執行緒指派到不同的核心去同時執行,只差在處理人類輸入/軟體界面,通常不怎麼需要吃處理器運算能力。
"只能單核心運行的軟體",是過於籠統的講法。