设为首页 加入收藏

TOP

计算机二级Java多线程:线程的生命周期
2014-10-29 10:30:15 】 浏览:317
Tags:计算机 二级 Java 线程 生命 周期

  与人有生老病死一样,线程也同样要经历开始(等待)、运行、挂起和停止四种不同的状态。这四种状态都可以通过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


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇两种Java容器类List和Set分析 下一篇Java语言中的ClassLoader与Packag..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目