作者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
1F:推 megaman1206:改WaitHandle.WaitAll试试看? 07/07 10:33
2F:→ yucgg:楼上大大您好,我在网路上有搜寻到说可以使用您说的方法, 07/07 10:36
3F:→ yucgg:但一直不知道该如何使用才好,不知道能否教小弟一下,感谢 07/07 10:36
5F:推 megaman1206:不过再次看了你的描述, 感觉上不是我这能解决的XDrz 07/07 12:51
6F:推 horngsh:找多执行绪同步 07/07 16:38
7F:推 jlovet:你lock住的区块太大了? 07/07 22:57