作者yucgg (神的左手 惡魔的右手)
看板C_Sharp
標題Re: [問題] 請問要如何等所有thread做完?
時間Tue Jul 7 10:15:56 2009
直接回一篇比較清楚
先說明一下目前的環境及狀況
我是用雙核心的電腦
跑series code的時候CPU使用率大約是50%
跑一次的時間大約11分鐘
部分程式碼用thread來分開跑
例如原本series code時跑1-500個項目
現在拆成1-250給第一個跑
251-500給第二個跑
最後等他們跑完再處理後續
在跑的時候好像因為交錯所以值有問題
因此在某段處理模擬模式的程式碼用lock(this){....}
以上方式跑的結果
thread的方法跑的比series code還慢
大約需要15分鐘
另外使用原本有while那段的時候CPU使用率有到100%
不過拿掉之後換成採用Join的方式
CPU使用率就一直維持在50%
這是否代表一直在用一個CPU跑而已??
不好意思不知道這樣是否有說明清楚
以及剛接觸這塊很多有不懂的地方還請各位多多指導
謝謝
--
It's my World!!
http://blog.pixnet.net/yucgg
New Place
http://blog.yam.com/evildance
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.190.123
推 megaman1206:改WaitHandle.WaitAll試試看? 07/07 10:33
→ yucgg:樓上大大您好,我在網路上有搜尋到說可以使用您說的方法, 07/07 10:36
→ yucgg:但一直不知道該如何使用才好,不知道能否教小弟一下,感謝 07/07 10:36
推 megaman1206:不過再次看了你的描述, 感覺上不是我這能解決的XDrz 07/07 12:51
推 horngsh:找多執行緒同步 07/07 16:38
推 jlovet:你lock住的區塊太大了? 07/07 22:57