12.2 多线程实现方式
线程的概念虽然比较复杂,但是在Java语言中实现线程却比较简单,只需要按照Java语言中对于线程的规定进行编程即可。
在实现线程编程时,首先需要让一个类具备多线程的能力,继承Thread类或实现Runnable接口的类具备多线程的能力,然后创建线程对象,调用对应的启动线程方法开始执行即可实现多线程编程。
在一个程序中可以实现多个线程,多线程编程指在同一个程序中启动了两个或两个以上的编程形式。当启动的线程数量比较多时,对于系统资源的要求比较多,所以程序支持的最大线程数量和计算机的硬件配置相关。
在实际实现线程时,Java语言提供了三种实现方式:
1、继承Thread类
2、实现Runnable接口
3、使用Timer和TimerTask组合
下面依次介绍每种实现方式的代码编写,以及各种实现之间的区别比较。
12.2.1 继承Thread类
如果一个类继承了Thread类,则该类就具备了多线程的能力,则该类则可以以多线程的方式进行执行。
但是由于Java语言中类的继承是单重继承,所以该方式受到比较大的限制。
下面以一个简单的示例介绍该种多线程实现方式的使用以及启动线程的方式。示例代码如下所示:
/**
* 以继承Thread的方式实现线程
*/
public class FirstThread extends Thread{
public static void main(String[] args) {
//初始化线程
FirstThread ft = new FirstThread();
//启动线程
ft.start();
try{
for(int i = 0;i < 10;i++){
//延时1秒
Thread.sleep(1000);
System.out.println("main:" + i);
}
}catch(Exception e){}
}
public void run(){
try{
for(int i = 0;i < 10;i++){
//延时1秒
Thread.sleep(1000);
System.out.println("run:" + i);
}
}catch(Exception e){}
}
}