首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不同硬件上的线程

不同硬件上的线程
EN

Stack Overflow用户
提问于 2014-01-12 21:27:37
回答 2查看 51关注 0票数 1

当我第一次学习Java线程时,有人告诉我,多线程并不是真的。也就是说,只有一个CPU,操作系统在线程之间进行上下文切换,以模拟多线程。

现在,我们有i3、i5 i7、双核、core2dou等。

因此,当我有一个使用大小为10的线程池的Java程序时(例如),假设线程池中充满了准备运行的线程,那么在具有2个内核的i5计算机上,同时运行(实际上)多少个线程?

EN

回答 2

Stack Overflow用户

发布于 2014-01-12 21:31:49

最多有2个线程同时执行(2个核心),但可能会调度更多的线程执行(等待cpu)

票数 1
EN

Stack Overflow用户

发布于 2014-01-12 22:53:31

一开始,Java有“绿色”线程,所以线程调度是在jvm中完成的。但是很长一段时间以来,Java都有本机线程。在任何情况下,如果您提供足够的线程,Java都可以利用您的所有内核。

PS:如果你的核心支持超线程,那么操作系统将看到两倍的核心数量。如果你的线程因为内存读取而停顿,这样另一个线程就可以运行,这是很有用的。在家里,我有一台4核Xeon机器,但如果启用了超线程,我的操作系统将会看到8核。但实际上只有4个线程可以并发运行。

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

https://stackoverflow.com/questions/21075173

复制
相关文章

相似问题

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