Java(8-1-x)

来源:互联网 发布:香港沙田有mac专柜吗 编辑:程序博客网 时间:2024/06/07 20:32

我们上次介绍了关于线程的创建和使用,并解释了只要有sleep就要捕获错误的原因。这一次,我们需要介绍一些建成的理论知识,可能有些枯燥,但确实必要。

Part 1 线程的状态:

线程的状态有6种,(1)New,新创建;(2)Runnable,可运行;(3)Blocked,被阻塞;(4)Waiting,等待;(5)Timed waiting,计时等待;(6)Terminated,被终止,如果我们要确定一个线程的状态,可以调用getState方法。

(1)New,新创建:
当用new操作符创建一个新线程时,如new Thread(r),该线程还没有开始运行。这意味着他的状态是new。

(2)Runnable,可运行线程:
一旦调用start方法,线程处于runnable状态。一个可运行的线程可能在运行,也可能没有运行,这取决于操作系统给线程提供的运行时间,记住这点!

(3)Blocked,被阻塞 和 Waiting,等待线程:
当线程处于被阻塞或等待状态时,它暂时不活动。就是说,他不运行任何代码且消耗最少的资源,知道线程重新激活它。

(4)Terminated,被终止线程:
线程的终止会有如下两个原因: 1.因为run方法正常退出而自然死亡。
2.因为一个没有捕获的异常终止了run方法而意外死亡。

Part 2 线程属性:

线程的优先级:在Java中,每一个线程有一个优先级。默认情况下,一个线程继承他的副线程的优先级。可以用serPriority方法提高或降低任何一个线程的优先级。可以将优先级设置为在MIN_PRIORITY(在Thread类中定义为1)与 MAX_PRIORITY(定义为10)之间的任何值。NORM_PRIORITY被定义为5。

守护线程:可以通过调用 t.setDaemon(true) 将线程转化为守护线程。守护线程唯一的用途就是为其他线程提供服务。

原创粉丝点击