线程并发问题

pathuang68 pathuang68 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
假定有10000个数据要处理,thread0处理前5000个数据,thread1处理后5000个数据,但我用下面的代码似乎并不能带来性能上的提升,基本上和用1个线程处理10000个数据差不多,这是为什么?

Thread thread0 = new Thread(new Runnable()
{
@Override
public void run()
{
long start = System.currentTimeMillis();
// 很多计算0
long end = System.currentTimeMillis();
System.out.println("interval 0 = " + (end - start) + "ms");
}
});

Thread thread1 = new Thread(new Runnable()
{
@Override
public void run()

long start = System.currentTimeMillis();
// 很多计算1
long end = System.currentTimeMillis();
System.out.println("interval 1 = " + (end - start) + "ms");
}
});

thread0.start();
thread1.start();


在上面代码中,如果只执行thread0,而注释掉thread1.start(),时间就几乎少用1半。

请高手解惑!
...全文
评论 10
收藏 已收藏
分享
返回顶部
pathuang68
Java SE 62,621 成员 307,251 内容