首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在java并发编程中,所有线程都会同时启动吗?

在java并发编程中,所有线程都会同时启动吗?
EN

Stack Overflow用户
提问于 2012-07-02 19:13:14
回答 2查看 510关注 0票数 0

在我的程序中,我创建了2个任务。这些任务实现Callable接口。我将它们传递给2个线程来执行线程池类。我的问题是,这两个线程会同时启动吗?在java并发编程中,所有的线程都会同时启动吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-02 19:16:07

在java并发编程中,所有线程会同时启动吗?

不,它们不会。对于传统的Java SE,您无法强制两个线程同时启动。(实际上,如果您没有多核处理器,那么在物理上不可能同时启动两个线程。)

票数 3
EN

Stack Overflow用户

发布于 2012-07-09 06:32:59

如果您希望它们几乎同时启动,有几个构造可以帮助您。

您可以使用CyclicBarrier -您可以创建一个具有2个许可证的新CyclicBarrier。然后每个线程调用cbarrier.await() -两个线程都不会继续执行,直到两个线程都调用了await,这使您非常接近同时执行,这正是我相信您想要的。

此外,在Java7中,有一个Phaser,它可以做几乎相同的事情,但应该更有性能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11292517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档