[討論] 撰寫多執行緒程式

作者: ko27tye (好滋好滋)   2019-05-11 01:06:45
最近把c++11有關多執行緒的部分
大概看了一遍,想寫點東西練練手
把新學到的東西用一用增加熟練度。
但我發現,除了防止UI freeze
和增加運算效率之外,好像沒有
特別必須要用到multi thread的地方...?
而效能的部分,不會一開始就計畫
就使用多執行緒吧? 而是在測試階段發現效能
不足後嘗試使用多執行緒改善。
這樣我有點困惑,到底哪些地方是"一定"
用得到多執行緒呢?
作者: Schottky (順風相送)   2019-05-11 01:30:00
有些時候想引入多執行緒時才發現演算法一開始就用錯了,根本無法拆分,只好整個砍掉重練,所以也是有一開始就以多執行緒設計或至少採用有可能多執行緒化的方法。以 #1IENu5lb 這篇來說,我用 Chudnovsky 法還有機會多執行緒化 (但無法使用 N 個 CPU 核心就快 N 倍),如果我用 Gauss-Legendre 法要怎麼改多執行緒?後一輪要使用前一輪的計算結果的。各計算間有依存性就無法切割分工、平行(同時)運算
作者: sarafciel (Cattuz)   2019-05-11 03:37:00
你這問題其實還蠻.....微妙的我也可以說除了搜尋以外二分搜尋這算法好像就沒用了吧?難道大家都是先寫線性搜尋 發現效能不足再來寫二分嗎?
作者: Jockey66666 (往事已成追憶)   2019-05-11 09:50:00
非同步、平行運算 沒了
作者: loveme00835 (髮箍)   2019-05-11 11:38:00
主要是去思考單緒/多緒各自能做/不能做什麼, 那適用的情境就比較明朗了, 有時候是以好不好設計, 或是對執行時機有要求而做的選擇. 譬如你想想兩個元件做 handshaking 用單緒/多緒該怎麼實現?
作者: hichcock (快樂一整年 ^^~~~)   2019-05-14 09:53:00
可以考慮一下 Server 應對多個 client 時的問題

Links booklink

Contact Us: admin [ a t ] ucptt.com