JAVA的线程可以在多个CPU上运行么?
2017-08-29 10:33
288 查看
关于这个问题,有以下两种答案:
第一,不能,因为“进程是CPU进行调度的单位,而JVM是一个进程,于是就只能跑在一个CPU上”。
第二,“进程是CPU进行调度的单位,这没错,但是OS负责将一个进程在不同的CPU上调度到另外一个CPU上,而这个进程,则是由不同的线程构成的,那么说,线程还是在不同的CPU上运行了”。
在SUN公司授权的《Java核心技术》中,有这样两句话,给了我们答案:
“今天,人们很可能有单台拥有多个CPU的计算机,但是,并发执行的进程数并不是CPU数目制约的。操作系统的时间片分配给每一个进程,给人并行处理的感觉”
“在具有多个处理器的机器上,每一个处理器运行一个线程,可以有多个线程并行运行。当然,如果线程的数目多于处理器的数目,调度器依然采用时间片机制”。
因此,Java的线程是可以在多个cpu上运行的。
第一,不能,因为“进程是CPU进行调度的单位,而JVM是一个进程,于是就只能跑在一个CPU上”。
第二,“进程是CPU进行调度的单位,这没错,但是OS负责将一个进程在不同的CPU上调度到另外一个CPU上,而这个进程,则是由不同的线程构成的,那么说,线程还是在不同的CPU上运行了”。
在SUN公司授权的《Java核心技术》中,有这样两句话,给了我们答案:
“今天,人们很可能有单台拥有多个CPU的计算机,但是,并发执行的进程数并不是CPU数目制约的。操作系统的时间片分配给每一个进程,给人并行处理的感觉”
“在具有多个处理器的机器上,每一个处理器运行一个线程,可以有多个线程并行运行。当然,如果线程的数目多于处理器的数目,调度器依然采用时间片机制”。
因此,Java的线程是可以在多个cpu上运行的。
相关文章推荐
- JAVA的线程可以在多个CPU上运行么?
- java线程可以在运行在多个cpu核上吗?
- C++ windows多线程 线程描述了进程内代码的执行路径。进程中同时可以有多个线程在执行,为了使他们能够同时运行,操作系统为每个线程轮流分配CPU时间片,为了充分地利用CPU提高软件产品的性能,一
- java中用什么方式可以是运行的线程终止????
- Java中的线程会按照优先级分配CPU时间片运行,那么线程什么时候放弃CPU使用权?
- cmd可以编译java文件,运行时提示找不到或无法加载主类
- 基于 Java 2 运行时安全模型的线程协作--转
- java中有几种方法可以实现一个线程?用什么关键字修饰同步
- 牛客网Java刷题知识点之什么是进程、什么是线程、什么是多线程、多线程的好处和弊端、多线程的创建方式、JVM中的多线程解析、多线程运行图解
- Android Studio 问题记录-全部java文件全部报错,却可以运行
- 如何创建并运行java线程
- 获取java最耗cpu资源线程信息
- 通过设置进程或线程的亲缘性(affinity),使进程或线程在指定的CPU(核)上运行
- Java并发编程-03-守护线程的创建和运行
- 创建线程后为什么关闭了线程句柄,线程还是可以运行?
- Java中如何正确而优雅的终止运行中的线程
- 三:如何创建并运行 Java 线程
- 【如何创建并运行java线程】
- java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用
- 找到占用CPU最高的Java线程