java线程可以在运行在多个cpu核上吗

 我来答
影视后期制作学习
2017-06-05 · 知道合伙人教育行家
影视后期制作学习
知道合伙人教育行家
采纳数:258 获赞数:698
荣获北京智泽苑教育科技有限公司金牌教师称号。

向TA提问 私信TA
展开全部

java线程可以在运行在多个cpu核上。

"在具有多个处理器的机器上,每一个处理器运行一个线程,可以有多个线程并行运行。当然,如果线程的数目多于处理器的数目,调度器依然采用时间片机制"。
现代os都将线程作为最小调度单位,进程作为资源分配的最小单位。 在windows中进程是不活动的,
只是作为线程的容器。

也就是说,java中的所有线程确实在JVM进程中,但是CPU调度的是进程中的线程。

"在具有多个处理器的机器上,每一个处理器运行一个线程,可以有多个线程并行运行。当然,如果线程的数目多于处理器的数目,调度器依然采用时间片机制"。这句话足以用来反驳那个出问题的人了,因为他的答案本身就是错的。

更详细的信息可以参见有关Java虚拟机实现的“并发”系列讲解,基本上每本关于Java虚拟机有关的书籍以及官方文档都会讲到JVM如何实现线程的几种方式。 基于系统内核,基于用户线程等等实现。JVM中的线程实现是本地化的~ 本地化的意思就是与平台有关了,尽管与平台有关,但是线程调度,仍旧是最佳高效的方式,有资料曾说过:线程的创建销毁与调度的开销是进程的三十分之一。

扑火的飞蛾06
2016-11-08 · TA获得超过1156个赞
知道小有建树答主
回答量:1895
采纳率:62%
帮助的人:271万
展开全部
java是支持分布式应用的,所以一个任务可以在多台机器中运行。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
动力节点
2017-04-27 · 口口相传的Java黄埔军校
动力节点
动力节点始于2009年,一家专注IT教育的培训机构,在全国各大城市设有直营校区,是中国软件研发人才一体化服务的倡导者,为解决当前软件开发技术飞速发展,专注培养面向互联网领域的IT高端软件人才
向TA提问
展开全部
  1. CPU在某一个时间点上确实只能执行一个线程,但是多线程不是由于多核或者双核才叫多线程。

  2. 是由于,很多个线程在并行执行的时候,CPU根据一定的线程调度算法,频繁的进行线程切换,当正在执行的一个线程需要进行IO操作或者需要访问内存的时候,CPU完全可以放弃该线程,转而调度线程就绪队列上的其他线程,被放弃的线程则进入阻塞状态,IO操作或者访问内存操作结束之后,该线程可以进入线程就绪队列上。

  3. 人们通常意义上的多线程指的是,由于CPU根据一定的线程调度算法来切换线程,所以在一个时间段上,可以看做很多线程在并发执行。

  4. 其实还是在某一个时间点上只有一个线程在运行罢了。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
utah8
2019-01-08
知道答主
回答量:1
采纳率:0%
帮助的人:775
展开全部
我今天也纠结这个问题,搜了一些资料,感觉这样:
如果在程序中写了并行命令(Fork/Join这种),就会运行在多核上;如果只是建立了多个线程,就看操作系统怎么分配了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c154398
2017-06-28 · TA获得超过244个赞
知道小有建树答主
回答量:102
采纳率:0%
帮助的人:94.3万
展开全部
当然可以了。

java语言是硬件无关的语言,不论你的计算机是单核还是多核,都可以运行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式