gpt4 book ai didi

java - 多线程真的是并发运行还是内联运行(一个接一个)

转载 作者:行者123 更新时间:2023-11-30 06:08:59 26 4
gpt4 key购买 nike

我确定MultiThreading的基本术语我很清楚 - 一个进程由多个线程组成并且可以同时运行它们,对吗?

我遇到了这个site ,它声明:

Only one thread at a time can run in a single process.

The thread scheduler mainly uses preemptive or time slicing scheduling to schedule the threads.

那么写作时实际发生了什么:

public static void main (String [] args) {
new CalcThread("CalcThread A").start();
new CalcThread("CalcThread B").start();
}

假设线程调度程序选择了 thread a首先运行,假设 thread b将在其之后立即安排。是thread b仅在 thread a 之后运行已终止?

如果是这种情况 - 为什么称其为并发行为?

最佳答案

调用start()调度一个线程来执行。虽然它通常“很快”执行,但实际执行开始时间是不确定的;这取决于 JVM。

在多核机器上,其他线程(可能)会在主线程继续运行时在其他核上并发执行。

在单核机器(例如低规范的 AWS 机器)上,JVM 可能会依次启动-进程-终止每个线程,然后再继续主线程(我已经看到这种情况发生)。

关于java - 多线程真的是并发运行还是内联运行(一个接一个),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39004734/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com