[問題] 多個單線程合成的做法

看板C_and_CPP作者 (やきだんこ)時間15年前 (2010/04/10 23:48), 編輯推噓0(007)
留言7則, 4人參與, 最新討論串1/1
目前在做一個多線程的程式, 這個程式需要對一個以單線程方式設計的演算法,開出多個線程去執行。 想到一個方法,判斷如果有某幾個線程剛好執行到相同的方法, 那我就跳到一個可以融合這多個線程的方法,然後只挑其中一個線程去執行這方法, 其他的,就等待挑中的那一個執行完後的通知後,再繼續。 我的問題是,這樣子的作法有沒有甚麼參考文件、關鍵字或建議? 可以幫助我評估是不是要這樣子做。 謝謝大家。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.245.50

04/10 23:51, , 1F
是要自動平行化嗎?
04/10 23:51, 1F

04/10 23:53, , 2F
我認為不是,因為這樣作就變得像單線程一樣,只是換個函數
04/10 23:53, 2F

04/10 23:54, , 3F
聽起來用 mutex 之類的東西可以做到?
04/10 23:54, 3F

04/11 00:30, , 4F
是想賺原本n份thread執行n次,縮減為執行一次嗎?
04/11 00:30, 4F

04/11 00:31, , 5F
如果是的話...直覺上成本會比賺的高?
04/11 00:31, 5F
※ 編輯: tf1515 來自: 61.223.101.46 (04/11 00:40)

04/11 09:46, , 6F
use if and barrier, splash2 benchmark is a good ref.
04/11 09:46, 6F

04/11 18:00, , 7F
謝謝大大們的回應
04/11 18:00, 7F
文章代碼(AID): #1Bm9syNl (C_and_CPP)