Java2 程序设计实用教程(电子教案)
{
int i = k;
System.out.println();
System.out.print(getName()+": ");
while (i<50)
{
System.out.print(i+" ");
i+=2;
}
System.out.println(getName() +" end!");
}
public static void main (String args[])
{
Thread1 t1 = new Thread1("Thread1",1); //创建线程对象
Thread1 t2 = new Thread1("Thread2",2);
t1.start(); //启动执行线程
t2.start();
System.out.println("activeCount="+t2.activeCount());
}
}
程序运行结果:
activeCount=3
Thread1: 1 3 5 7 9 11 13 15 17 19 21 23 25 27
Thread2: 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34
36 38 40 42 44 46 48 Thread2 end!
29 31 33 35 37 39 41 43 45 47 49 Thread1 end!
两种创建线程方法的比较
比较两者的特点和应用领域:
直接继承线程 Thread 类。该方法编写简单,可以直接操作线程,适用于单重继承情况,因而不能在
继承其他类
实现 Runnable 接口。当一个线程已继承了另一个类时,就只能用实现 Runnable 接口的方法来创建线
程,且便于保持程序风格的一致性。
线程组
每个线程都是一个线程组的成员,线程组把多个线程集成为一个对象,通过线程组可以同时对其中的
多个线程进行操作,如启动一个线程组的所有线程等。Java 的线程组由 java.lang 包中的 Thread——Group
类实现。
ThreadGroup 类用来管理一组线程,包括:线程的数目,线程间的关系,线程正在执行的操作,以及
线程将要启动或终止时间等。线程组还可以包含线程组。在 Java 的应用程序中,最高层的线程组是名位
main 的线程组,在 main 中还可以加入线程或线程组,在 mian 的子线程组中也可以加入线程和线程组,形
成线程组和线程之间的树状继承关系
第二节 线程的控制与调度
线程的生命周期
第 3 页共 12 页