我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:多盈娱乐注册 > 多处理器 >

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

归档日期:09-02       文本归类:多处理器      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部我今天也纠结这个问题,搜了一些资料,感觉这样:如果在程序中写了并行命令(Fork/Join这种),就会运行在多核上;如果只是建立了多个线程,就看操作系统怎么分配了。

  257获赞数:457荣获北京智泽苑教育科技有限公司金牌教师称号。向TA提问展开全部java线程可以在运行在多个cpu核上。

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

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

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

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

  北京动力节点教育科技有限公司,自2009成立至今专注于Java培训,拥有全国权威的Java教学就业保障团队,,得到了业界的广大好评,被业界誉为“口口相传的Java黄埔军校“CPU在某一个时间点上确实只能执行一个线程,但是多线程不是由于多核或者双核才叫多线程。

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

  展开全部当然可以了。java语言是硬件无关的语言,不论你的计算机是单核还是多核,都可以运行。

本文链接:http://cakesbyrita.net/duochuliqi/1275.html