我刚刚在阅读“服务器如何处理多个请求”的内容时,了解到了Java多线程和多核CPU的知识。
在计算机只有单核处理器的时代,如果有两个Java线程同时运行,那么JVM调度程序会负责为每个线程分配时间。因此,这两个线程永远不会并行运行,但会利用空闲时间(例如,如果一个线程被阻塞在某些资源上)。
但是,当有多个核心和Java7中的fork/join框架时,情况是否一样呢?我的意思是,我听说使用多个核心可以实现并行处理。因此,如果我有两个线程正在运行,有两个核心的CPU,并且每个线程都被分配一个单独的核心(虽然不能保证),它们是否真正并行执行,因为JVM调度程序仍然会导致时间交错?
如果我的问题很愚蠢,请原谅,但我确实不确定。请帮助我理解!
谢谢! Ouney
在计算机只有单核处理器的时代,如果有两个Java线程同时运行,那么JVM调度程序会负责为每个线程分配时间。因此,这两个线程永远不会并行运行,但会利用空闲时间(例如,如果一个线程被阻塞在某些资源上)。
但是,当有多个核心和Java7中的fork/join框架时,情况是否一样呢?我的意思是,我听说使用多个核心可以实现并行处理。因此,如果我有两个线程正在运行,有两个核心的CPU,并且每个线程都被分配一个单独的核心(虽然不能保证),它们是否真正并行执行,因为JVM调度程序仍然会导致时间交错?
如果我的问题很愚蠢,请原谅,但我确实不确定。请帮助我理解!
谢谢! Ouney