iT邦幫忙

0

Multi-thread與Single Thread的Application,那個比較吃CPU,那個比較吃記憶體

各位先進:小弟最近聽到Multi-thread跟Single Thread的application。想請教各位先進,那個寫出來的應用程式比較吃CPU,那個比較吃RAM。

當然,吃不吃資源跟程式寫的好壞有關,不過不知道有沒有個基本值或是相關文件可供小弟參考,感謝。

2 個回答

4
weiclin
iT邦高手 4 級 ‧ 2015-09-17 00:37:37
最佳解答

一般常見使用 Multi Thread 有兩個目的

  1. 你有一些工作想放在背景執行
  2. 你有大量的資料需要加快運算速度

對於第一點來說, 主要好處是可以簡化程式邏輯, 加快 UI 反應時間
但所使用的 CPU 與記憶體並不會有太大差別

第二點, 是用在運算上, 自然就會吃掉更多的 CPU 才會算的快
例如你原本一堆資料要花十分鐘跑完, 這十分鐘一直用掉 100% CPU
現在切割成三份資料, 開三個 Thread 去運算, 可能就吃掉 300% CPU(三個核心)
但是只要五分鐘就能算完

這類東西沒什麼基本值, 完全是看你程式怎樣運作來決定的
但有個基本概念, 開兩個 Thread 去跑, 速度並不會變成兩倍
甚至慘一點還會變慢...這也是由你的程式邏輯來決定

所以想知道結果如何, 自己寫完跑跑看最準確

4
wiseguy
iT邦超人 1 級 ‧ 2015-09-17 08:54:49

Multi-thread與Single Thread的Application,那個比較吃CPU、記憶體?
這有什麼疑問?同樣是 thread,多個當然比一個要耗資源。所以一定是 Multi-thread 比較吃CPU、記憶體。
通常會比的是 Multi-thread 與 Multi-process 的優劣,Google 一下就可以得到很多答案了。

我要發表回答

立即登入回答