java - 谁维护 Java 中的线程状态(从运行状态到等待/阻塞状态)

标签 java multithreading

正如我们所知,Java 线程从调用 start 方法开始,当我们调用 thread.wait() 时。它从运行状态进入等待状态,而当我们调用 sleep 时,它不会。

我的问题是:谁管理从运行状态到等待或阻塞状态的状态转换? Java中threadLocal有什么作用吗?

最佳答案

线程管理是操作系统的一个领域。操作系统将线程置于等待状态并在需要时唤醒它。当然有一个Java中间层将Java线程API转换为系统调用。因此,您可以直接与 JVM 交互,但在桌面系统上,它将使用操作系统支持的线程来实现线程。

请注意,可能存在不同的极端情况。例如,您可能有一个运行 JVM 的裸机系统,没有任何操作系统。在这种情况下,线程支持(如果有的话)将由 JVM 实现。还有一个绿色线程的概念,它与普通线程类似,但在没有操作系统支持的应用程序内部进行管理。

关于java - 谁维护 Java 中的线程状态(从运行状态到等待/阻塞状态),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40950471/

相关文章:

java - 单个 RMI stub 与多个

java - 无法使用 mvn clean deploy 从同一台计算机将 Artifact 上传到 Nexus,在我的本地 Windows 10 计算机上工作正常

c++ - 警告 #2901 : [omp] OpenMP is not active; all OpenMP directives will be ignored

java - 如何逐个字段比较@Entity注释的类而不降低将对象存储到数据库的性能?

java - 使用 JNI、多线程从 Fortran 调用 Java

iPhone多线程API

c# - 我如何知道分配给线程的实际时间片?

SPListItemCollection 上的 C# Parallel.ForEach() 导致异常 (0x80010102)

java - 如何加速 netezza 插入语句过程

c++ - 当一个线程希望执行或打印某些内容时如何暂停其他线程?