继承Thread类
步骤:
1.定义一个类,继承Thread类
2.重写run方法( 注意:run方法就是线程需要执行的方法)
3.创建子线程对象
4.使用start方法启动子线程
package ThreadDemo;
public class ThreadDemo {
public static void main(String[] args) {
new TestThread().start(); //启动一个线程
for(int i=0;i<5;++i) //循环输出语句
{
System.out.println("main线程在运行");
try{
Thread.sleep(1000); //睡眠一秒
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
}
class TestThread extends Thread
{
public void run()
{
for(int i=0;i<5;++i)
{
System.out.println("TestThread在运行");
try{
Thread.sleep(1000);
} catch(InterruptedException e){
e.printStackTrace(); //详细异常信息
}
}
}
}
结果如下:
main线程在运行
TestThread在运行
TestThread在运行
main线程在运行
TestThread在运行
main线程在运行
main线程在运行
TestThread在运行
TestThread在运行
main线程在运行
解析:
首先定义了TestThread类,它继承自父类Thread,并覆写了父类的run方法(第20~第31行)。因此可以使用这个类创建一个新线程对象。在run方法中,使用了 try…catch模块,用来捕获可能产生的异常。
在上面的InterruptedException表示中断异常类,Thread.sleep()和 Object.wait()都可能抛出这类中断异常。一旦发生异常,我们使用的printStackTrace() 方法会输出详细的异常信息。
第05行创建了一个TestThread类的匿名对象,并调用了start方法创建了一个新的线程。
需要注意的是,运行本范例的结果可能有所不同,这是容易理解的,因为多线程的执行顺序存在不确定性。