正如我们所知,Java 线程从调用 start 方法开始,当我们调用 thread.wait()
时。它从运行状态进入等待状态,而当我们调用 sleep 时,它不会。
我的问题是:谁管理从运行状态到等待或阻塞状态的状态转换? Java中threadLocal
有什么作用吗?
最佳答案
线程管理是操作系统的一个领域。操作系统将线程置于等待状态并在需要时唤醒它。当然有一个Java中间层将Java线程API转换为系统调用。因此,您可以直接与 JVM 交互,但在桌面系统上,它将使用操作系统支持的线程来实现线程。
请注意,可能存在不同的极端情况。例如,您可能有一个运行 JVM 的裸机系统,没有任何操作系统。在这种情况下,线程支持(如果有的话)将由 JVM 实现。还有一个绿色线程的概念,它与普通线程类似,但在没有操作系统支持的应用程序内部进行管理。
关于java - 谁维护 Java 中的线程状态(从运行状态到等待/阻塞状态),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40950471/