![](https://csdnimg.cn/release/download_crawler_static/3170660/bg3.jpg)
J ava2 程序设计实用教程(电子教案)
第
3
页共
12
页
{
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 —— Grou p
类实现。
ThreadGroup
类用来管理一组线程 , 包括 : 线程的数目 , 线程间的关系 , 线程正在执行的操作 , 以及线
程将要启动或终止时间等 。 线程组还可以包含线程组 。 在
Java
的应用程序中 , 最高层的线程组是名位
mai n
的线程组,在
main
中还可以加入线程或线程组,在
mian
的子线程组中也可以加入线程和线程组,形成线
程组和线程之间的树状继承关系
第三节 线程的控制与调度
线程的生命周期