计算机二级Java多线程:线程的生命周期

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

  与人有生老病死一样,线程也同样要经历开始(等待)、运行、挂起和停止四种不同的状态。这四种状态都可以通过Thread类中的方法进行控制。下面给出了Thread类中和这四种状态相关的方法。

  1.// 开始线程

  2.public void start( );

  3.public void run( );

  4.

  5.// 挂起和唤醒线程

  6.public void resume( );     // 不建议使用

  7.public void suspend( );    // 不建议使用

  8.public static void sleep(long millis);

  9.public static void sleep(long millis, int nanos);

  10.

  11.// 终止线程

  12.public void stop( );       // 不建议使用

  13.public void interrupt( );

  14.

  15.// 得到线程状态

  16.public boolean isAlive( );

  17.public boolean isInterrupted( );

  18.public static boolean interrupted( );

  19.

  20.// join方法

  21.public void join( ) throws InterruptedException;

  一、创建并运行线程

  线程在建立后并不马上执行run方法中的代码,而是处于等待状态。线程处于等待状态时,可以通过Thread类的方法来设置线程不各种属性,如线程的优先级(setPriority)、线程名(setName)和线程的类型(setDaemon)等。

  当调用start方法后,线程开始执行run方法中的代码。线程进入运行状态。可以通过Thread类的isAlive方法来判断线程是否处于运行状态。当线程处于运行状态时,isAlive返回true,当isAlive返回false时,可能线程处于等待状态,也可能处于停止状态。下面的代码演示了线程的创建、运行和停止三个状态之间的切换,并输出了相应的isAlive返回值。

  22.package chapter2;

  23.

  24.public class LifeCycle extends Thread

  25.{

  26.    public void run()

  27.    {

  28.        int n = 0;

  29.        while ((++n) < 1000);

  30.    }

  31.

  32.    public static void main(String[] args) throws Exception

  33.    {

  34.        LifeCycle thread1 = new LifeCycle();

  35.        System.out.println("isAlive: " + thread1.isAlive());

  36.        thread1.start();

  37.        System.out.println("isAlive: " + thread1.isAlive());

  38.        thread1.join();  // 等线程thread1结束后再继续执行

  39.        System.out.println("thread1已经结束!");

  40.        System.out.println("isAlive: " + thread1.isAlive());

  41.    }

  42.}

  要注意一下,在上面的代码中使用了join方法,这个方法的主要功能是保证线程的run方法完成后程序才继续运行,这个方法将在后面的文章中介绍

  上面代码的运行结果:

  isAlive: false

  isAlive: true

  thread1已经结束!

  isAlive: false

上一页123下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答