JAVA中的多线程能在多CPU上并行执行吗?注意,我说的不是并发执行哦

作者&投稿:挚蔡 (若有异议请与网页底部的电邮联系)
同一进程的多个线程可以被多个CPU核心并行执行吗~

可以。进程和线程在进程资源的管理上(比如内存空间)是不一样的,但在调度上其实是一样的。这个还要看编程语言的线程模型。某些语言(如python)的线程模型不支持并行运行在多个核上

如果是单核CPU,在某个时间点只能执行一个线程,但是多核CPU你可以理解为多个单核CPU,当然可以同时执行多个线程啦。

你的思路是对的,CPU就是为了迎合操作系统的多线程从而提高系统的计算效率.但是具体分配任务到各个内核中去执行的并非JAVA与JVM而是操作系统.也就是说,你所执行的多线程,可能会被分配到同一个CPU内核中运行.也可能非配到不同的cpu中运行.如果可以控制CPU的分配,那也应该是操作系统的api才能实现的了


java该怎么自学?
前面学了JavaSE基础,但它在企业级应用中程序处理业务的效率并不高、扩展差,编程强化是对JavaSE基础的加强,将针对性的提高程序处理业务的执行效率、增强程序扩展性。编程强化将加强多线程高级学习,涉及线程内存、线程通信等技术。学完以后,能增加一个中级程序员的知识储备,无论在面试过程中还是将来技术的深入打一个良好...

手机GAVA是什么啊?有什么好处?
因此,Java非常适合于企业网络和Internet环境,现在已成为Internet中最受欢迎、最有影响的编程语言之一。 Java有许多值得称道的优点,如简单、面向对象、分布式、解释性、可靠、安全、结构中立性、可移植性、高性能、多线程、动态性等。Java的主要应用有如下几点:利用浏览器中的Java虚拟机运行于客户端的...

linuxC线程异常退出调查linuxc线程
这种方式通常适用于多进程间通信。其他考虑用socket。这里的“其他情况”,其实是今天主要会碰到的情况: 分布式开发。在多进程、多线程、多模块所构成的今天最常见的分布式系统开发中, socket是第一选择。消息队列,现在建议不要使用了---因为找不到使用它们的理由。在实际中,我个人感觉,PIPE和FIFO可以偶尔使用下,共享...

怎么把java编码设置成全局
4)Jbuilder能用Servlet和JSP开发和调试动态Web 应用。 5)利用Jbuilder可创建(没有专有代码和标记)纯Java2应用。由于Jbuilder是用纯J ava语言编写的,其代码不含任何专属代码和标记,它支持最新的Java标准。 6)Jbuilder拥有专业化的图形调试介面,支持远程调试和多线程调试,调试器支持 各种JDK版本,包括J2ME\/J2SE\/J2EE。

沾化县17131711622: Java中多线程在多核CPU中是真的同时执行吗? -
古友复方: 如果是单核CPU,在某个时间点只能执行一个线程,但是多核CPU你可以理解为多个单核CPU,当然可以同时执行多个线程啦.

沾化县17131711622: java线程可以在运行在多个cpu核上吗 -
古友复方: 我今天也纠结这个问题,搜了一些资料,感觉这样:如果在程序中写了并行命令(Fork/Join这种),就会运行在多核上;如果只是建立了多个线程,就看操作系统怎么分配了.

沾化县17131711622: 在多CPU的计算机系统中,Java中的多线程是真正意义上的同时执行吗? -
古友复方: 看要你线程的总数,比如,你2个cpu,总共系统中也只有2个线程,那就是真正上的同时执行,如果你的线程数大于cpu数,那事实上还是异步执行的

沾化县17131711622: 如何让java更好的利用多cpu? -
古友复方: 几个意见大致如下,第一,不能,因为“进程是CPU进行调度的单位,而JVM是一个进程,于是就只能跑在一个CPU上”.第二,“进程是CPU进行调度的单位,这没错,但是OS负责将一个进程在不同的CPU上调度到另外一个CPU上,而这个...

沾化县17131711622: java的多线程是并发还是并行 -
古友复方: 并发和并行的区别就是一个处理器同时处理多个任务和多个处理器或者是多核的处理器同时处理多个不同的任务. 前者是逻辑上的同时发生(simultaneous),而后者是物理上的同时发生. 并发性 (concurrency),又称共行性,是指能处理多个同时性活动的能力,并发事件之间不一定要同一时刻发生. 并行 (parallelism) 是指同时发生的两个并发事件,具有并发的含义,而并发则不一定并行. 也就是说,多进程之间并发执行,而多线程编程就是并行执行的了. 正确答案是: java的多线程是并行.

沾化县17131711622: Java:关于多线程与多核,如何将多核都利用上呢? -
古友复方: 你自己写个多线程的程序跑起来,把任务管理器打开,打开“性能”选项卡,观察你就发现了,其实不管你你的是4核,8核,1024核,基本都是在一个格子里有动作的,跟理论上几个线程就在几个核里跑不一致的,操作系统自身的设计导致的.核虽然多,县城虽然多,但是还没有真正设计成几个线程就在几个核里跑的算法模式.至于怎么都利用上不是你说了算,os说了算.别想太多.

沾化县17131711622: 如何使用Java编写多线程程序(1) -
古友复方: 一、简介1、什么是线程要说线程,就必须先说说进程,进程就是程序的运行时的一个实例.线程呢可以看作单独地占有CPU时间来执行相应的代码的.对早期的计算机(如DOS)而言,线程既是进程,进程既是进程,因为她是单线程的.当然...

沾化县17131711622: java的多线程和多CPU之间的关系? -
古友复方: 没关系吧,虽然都有个多字. 简单的讲,JVM的多线程通常是不依赖于操作系统来实现的,这一点在IBM的系统上更为常见.有些优化的JVM比如IBM的,就是使用了NativeThread机制,来达到更高的效率.在单CPU上就能实现多线程,至于多CPU情况,要看操作系统对多CPU的支持了.

沾化县17131711622: java api中:public static Thread currentThread() -
古友复方: 赞同jimmyc2006的说法,当然是返回调用的线程~ 在一个时间点上,只能有一个cpu在运行一个线程,这个例子是双核cpu运行的 public class ThreadDemo_4 { public static void main(String [] args) { TestThread t = new TestThread() ; // 启动了...

沾化县17131711622: java多线程同时读取一个文件,这个方法可行吗? -
古友复方: 不可行.多线程能够提高效率是因为现在的cpu普遍是多核cpu, 多条线程可以在多个内核中同时执行来提高计算效率.但是计算机磁盘的磁头只有一个,即使多条线程去读也并不能提高读取效率,反而因为多线程的上下文切换问题会耗时更久.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网