java多线程:线程状态

线程可以有如下 6 种状态 :

• New ( 新创建 )
• Runnable( 可运行 )
• Blocked( 被阻塞 )
• Waiting( 等待 )
• Timed waiting( 计时等待 )
• Terminated( 被终止 )
。要确定一个线程的当前状态 , 可调用 getState 方法。

新创建线程
当用 new 操作符创建一个新线程时, 如newThread ( r ), 该线程还没有开始运行 。 这意味着它的状态是 new
。 当一个线程处于新创建状态时 , 程序还没有开始运行线程中的代码 。 在线程运行之前还有一些基础工作要做。
可运行线程

一旦调用 start 方法, 线程处于runnable 状态。 一个可运行的线桿可能正在运行也可能没有运行 , 这取决于操作系统给线程提供运行的时间 。 ( Java 的规范说明没有将它作为一个单独状态。 一个正在运行中的线程仍然处于可运行状态 。)

被阻塞线程和等待线程

当线程处于被阻塞或等待状态时, 它暂时不活动 。 它不运行任何代码且消耗最少的资源。 直到线程调度器重新激活它 。 细节取决于它是怎样达到非活动状态的 。

被终止的线程

线程因如下两个原因之一而被终止 :

• 因为 run 方法正常退出而自然死亡 。

• 因为一个没有捕获的异常终止了 nm 方法而意外死亡 


猜你喜欢

转载自blog.csdn.net/qq_15140841/article/details/80155304