为了帮助你在有效的时间内提高考试成绩,我们考吧网整理了有关计算机等级二级考试复习资料和方法技巧,希望通过本次练习对你有所帮助。
2013年计算机二级Java多线程入门技巧和方法10
线程的生命周期
与人有生老病死一样,线程也同样要经历开始(等待)、运行、挂起和停止四种不同的状态。这四种状态都可以通过Thread类中的方法进行控制。下面给出了Thread类中和这四种状态相关的方法。
// 开始线程
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已经结束!
isAliv
ve: false