异步线程
这里要实现在一个既定流程中插入线程去异步调用其他业务
线程不会阻塞既定流程执行
代码示例
/**
* 启动类
*/
public class Startup {
public static void main(String[] args) {
// 传参 执行第3次结束线程
MyThread myThread = new MyThread(3);
// 后执行 启动线程
myThread.start();
// 先执行
System.out.println("启动类...");
}
}
/**
* 线程类
*/
public class MyThread extends Thread{
private int num;
MyThread(int num){
this.num = num;
}
@Override
public void run(){
// 模拟业务执行
DateFormat sdf = new SimpleDateFormat("HH:mm:ss");
for (int i = 1; i < 6; i++) {
System.out.println("执行第" + i +"次 当前时间为: " + sdf.format(new Date()));
if(i == num){
System.out.println("num为: " + num + " 即将退出...");
break;
}
try {
// 休息2秒执行下一次
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
控制台打印
启动类...
执行第1次 当前时间为: 16:19:06
执行第2次 当前时间为: 16:19:08
执行第3次 当前时间为: 16:19:10
num为: 3 即将退出...