通过Thread创建线程
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
第二种创建线程的方式是继承Thread类,采用这种方式可以让你的程序更加灵活,因为你的类继承自Thread类,因此可以对线程的整个生命周期进行完全控制。
我们通过如下步骤创建一个线程类:
第一步:
重写Thread类的run()
方法。该方法是线程执行的入口点,你需要将业务逻辑写在该方法中,该方法的语法如下:
public void run();
第二步:
一旦Thread对象被创建,你就可以通过调用他的start()
方法启动线程了,它将自动调用你重写的run()
方法,该方法的语法如下:
void start();
下面是创建线程的完整示例:
class MyThreadExt extends Thread {
private String threadName;
MyThreadExt(String name) {
threadName = name;
System.out.println("创建子线程: " + threadName);
}
public void run() {
System.out.println("执行子线程: " + threadName);
try {
for (int i = 4; i > 0; i--) {
System.out.println("子线程: " + threadName + ", " + i);
// Let the thread sleep for a while.
Thread.sleep(50);
}
} catch (InterruptedException e) {
System.out.println("子线程 " + threadName + " 中断");
}
System.out.println("子线程 " + threadName + " 结束");
}
}
public class MyThreadExtTest {
public static void main(String args[]) {
MyThreadExt t1 = new MyThreadExt("线程1");
t1.start();
MyThreadExt t2 = new MyThreadExt("线程2");
t2.start();
}
}
运行结果如下:
创建子线程: 线程1
创建子线程: 线程2
执行子线程: 线程1
子线程: 线程1, 4
执行子线程: 线程2
子线程: 线程2, 4
子线程: 线程1, 3
子线程: 线程2, 3
子线程: 线程2, 2
子线程: 线程1, 2
子线程: 线程1, 1
子线程: 线程2, 1
子线程 线程2 结束
子线程 线程1 结束
在线练习
{$ activeFileHint $}