作者willieliao (Willie Liao)
看板java
标题Re: [问题] thread会导致程式执行反而变慢吗?
时间Thu Apr 1 14:02:56 2010
Thread本身有overhead,以这种没有io/network等待的纯记忆体内运算来说
最快的方法是用Thread pool,以原po四核心的电脑
用同样的四条Thread各运算250次会比开1000条
Thread运算一次或用同一条Thread算1000次要快的多。
※ 引述《yamamura (sadako)》之铭言:
: 大家好
: 最近我写了一个双回圈
: 总之就是在比较a集合有没有包含b集合的东东
: 这段code也是卡在回圈里,因为彼此的运算独立所以想写成thread
: 最後只是想统计有几个事件是[a集合有包含b集合],若超过某个数量则启动其他事件
: 就先不管为什麽要特别写这个脱裤子放屁的东西吧
: 我把这段改写成thread之後执行发现比原本的执行时间还慢10多倍
: 输出结果除了顺序之外都是相同的,我应该可以确定程式逻辑没有写错
: 不同於上例,这些thread额外共享一个类别变数,就是统计[a包含b事件]的总和用的
: 我把更改类别变数值的method写成同步化
: 我用自己的4核心电脑跑,每一个核心都负载45%左右
: 若是用原本的方式,就会只有一个核心负载100%
: 当然结果就如上述是单核心的快,而且快很多
: 请问我有遗漏哪些重点呢?为什麽会这样?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 76.111.66.205