Java线程:根据sun的说法,线程生命周期只有四个阶段

Java线程:根据sun的说法,线程生命周期只有四个阶段,java,multithreading,Java,Multithreading,根据sun microsystems的说法,线程只有四个阶段: 1. New 2. Runnable 3. Non-Runnable (Blocked) 4. Terminated 根据他们的说法,没有运行状态 为什么会这样 线程运行时的状态是什么? 根据文档(您读过了,不是吗?:)“RUNNABLE”表示“Java虚拟机中执行的线程处于这种状态。” 因此,让您困惑的似乎只是列举中的词语选择。 根据文档(您读过了,不是吗?:)“RUNNABLE”表示“Java虚拟机中执行的线程

根据sun microsystems的说法,线程只有四个阶段:

  1. New
  2. Runnable
  3. Non-Runnable (Blocked)
  4. Terminated
根据他们的说法,没有运行状态

为什么会这样

线程运行时的状态是什么?

根据文档(您读过了,不是吗?:)“RUNNABLE”表示“Java虚拟机中执行的线程处于这种状态。”

因此,让您困惑的似乎只是列举中的词语选择。

根据文档(您读过了,不是吗?:)“RUNNABLE”表示“Java虚拟机中执行的线程处于这种状态。”

因此,让您感到困惑的似乎只是列举中的词语选择。

最好看看:

公共静态最终线程。状态可运行

可运行线程的线程状态 线处于可运行状态的线程在Java中执行 虚拟机,但它可能正在等待来自的其他资源 操作系统,如处理器

最好看一下:

公共静态最终线程。状态可运行

可运行线程的线程状态 线处于可运行状态的线程在Java中执行 虚拟机,但它可能正在等待来自的其他资源 操作系统,如处理器


根据Java文档,这些是定义的状态

  • 新建:创建thread(我们称之为T)的对象时
  • Runnable:当T启动并参与消耗CPU周期时。这是运行状态
  • 阻塞:当T在锁的监视器上被阻塞时(当其他线程正在执行某个同步块或方法时,T可能被阻塞以进入该块或方法)
  • 等待:线程正在等待(线程调度程序不会选择线程以消耗CPU周期)。在收到通知或中断之前,它将保持此状态
  • 定时等待:与等待状态类似,但在定义的时间段内。一旦时间段结束,它就会脱离这种状态
  • 终止:线程执行结束(运行结束方法)

  • 根据Java文档,这些是定义的状态

  • 新建:创建thread(我们称之为T)的对象时
  • Runnable:当T启动并参与消耗CPU周期时。这是运行状态
  • 阻塞:当T在锁的监视器上被阻塞时(当其他线程正在执行某个同步块或方法时,T可能被阻塞以进入该块或方法)
  • 等待:线程正在等待(线程调度程序不会选择线程以消耗CPU周期)。在收到通知或中断之前,它将保持此状态
  • 定时等待:与等待状态类似,但在定义的时间段内。一旦时间段结束,它就会脱离这种状态
  • 终止:线程执行结束(运行结束方法)

  • 我可以推测,根据调度程序的不同,线程在任何给定时刻都可能运行,也可能不运行。因此,与其说某个线程正在运行,不如说它是否可以运行。然后根据sun的说法,线程开始运行时的状态是什么?@VikasSatpute在单处理器系统中,您如何观察当前正在执行的线程的状态?:)“准备运行,但未启动”、“当前正在运行”、“已启动,但等待处理器时间”之间的区别是毫无意义的,因为在观察者处理值之前,它可能会发生多次变化。我可以这样推测,线程在任何给定时刻都可能运行,也可能不运行,这取决于调度程序。因此,与其说某个线程正在运行,不如说它是否可以运行。然后根据sun的说法,线程开始运行时的状态是什么?@VikasSatpute在单处理器系统中,您如何观察当前正在执行的线程的状态?:)“准备运行,但未启动”、“当前正在运行”、“已启动,但等待处理器时间”之间的区别是毫无意义的,因为它可以在观察者处理值之前更改多次。