fedora wrote:
以 JAVA 為例,可以把程式 threads 化,讓多筆資料同時下去跑,達到多工運算(類似平行運算)的效果。
...(恕刪)
f兄沒寫過程式吧!如果不瞭解要說的是什麼,建議就不要信口解釋......

如果本來就沒有平行性的事務的Java程式,JVM也無法幫你平行化下去跑......
一個團隊有8個人,莫非您以為「任何」專案,一定都可以很平均的分給8個人同時進行、用1個人進行的1/8時間完成?現實中的工作或是電腦要計算的真實事務,可不是算小學習題。
fedora wrote:
和資料是不是有 sequential 特性無關
以 JAVA 為例,可以把程式 threads 化,讓多筆資料同時下去跑,達到多工運算(類似平行運算)的效果。
當然單一筆資料,看不出效果,但如有成千上萬筆資料要處理的,threads 化 就可以用到 CPU 所有核心,同時去處理那些上萬筆的資料。而不是傳統的程序一筆接著一筆,只能單核心運行。
像我有時候在轉圖片製做電子書,就很奇怪為何轉圖軟體要一張圖片接著一張轉,結果CPU 使用率不到 20% 的,要等超久。如果轉圖軟體的作者把程式寫成可以多執行緒運行的,讓 CPU 全部核心都下去用,那就可以節省好幾倍的時間。...(恕刪)
三星銀河系 wrote:
不會寫程式才說這種話
Whistle Blow wrote:
f兄沒寫過程式吧!如果不瞭解要說的是什麼,建議就不要信口解釋......
如果本來就沒有平行性的事務的Java程式,JVM也無法幫你平行化下去跑......
一個團隊有8個人,莫非您以為「任何」專案,一定都可以很平均的分給8個人同時進行、用1個人進行的1/8時間完成?現實中的工作或是電腦要計算的真實事務,可不是算小學習題。...(恕刪)
fedora wrote:
我不是指 JVM 會幫平行化,JVM 沒有那麼神奇。
而是 JAVA 有提供 Threads 類別,直接繼承它,或者實做 Runnable 界面,就可以讓程序變成「多執行緒」(多線程)的。
藉由物件導向,把事情簡單化,不必去管它多線程底層是怎麼達成的,只須會用就好。
...(恕刪)
Whistle Blow wrote:
重點是:現實中充滿了不能平行化的演算工作!...(恕刪)
Whistle Blow wrote:
比如屬於作業系統核心程式中的核心程式的thread scheduler,你試著把它平行化看看......