Java开启子线程
流程图
flowchart TD;
A[主线程] --> B{开启子线程};
B --> C{执行任务};
C --> D[子线程];
D --> E{完成任务};
E --> F[主线程];
步骤
步骤 | 描述 |
---|---|
1 | 创建一个继承Thread类的子类或者实现Runnable接口的类 |
2 | 重写run()方法,其中包含子线程要执行的任务 |
3 | 实例化子线程对象 |
4 | 调用子线程的start()方法来启动子线程 |
5 | 子线程开始执行任务 |
6 | 子线程执行完任务后,线程进入终止状态 |
7 | 主线程继续执行,可以获取子线程的执行结果 |
代码实现
- 创建一个继承Thread类的子类或者实现Runnable接口的类
public class MyThread extends Thread {
@Override
public void run() {
// 子线程要执行的任务
}
}
- 重写run()方法,其中包含子线程要执行的任务
public class MyThread extends Thread {
@Override
public void run() {
// 子线程要执行的任务
// 可以在这里写需要在子线程中执行的代码
}
}
- 实例化子线程对象
MyThread myThread = new MyThread();
- 调用子线程的start()方法来启动子线程
myThread.start();
- 子线程开始执行任务
public class MyThread extends Thread {
@Override
public void run() {
// 子线程要执行的任务
// 可以在这里写需要在子线程中执行的代码
System.out.println("子线程开始执行任务");
}
}
- 子线程执行完任务后,线程进入终止状态
public class MyThread extends Thread {
@Override
public void run() {
// 子线程要执行的任务
// 可以在这里写需要在子线程中执行的代码
System.out.println("子线程开始执行任务");
// 子线程执行完任务后,线程进入终止状态
}
}
- 主线程继续执行,可以获取子线程的执行结果
public class MyThread extends Thread {
@Override
public void run() {
// 子线程要执行的任务
// 可以在这里写需要在子线程中执行的代码
System.out.println("子线程开始执行任务");
// 子线程执行完任务后,线程进入终止状态
}
}
public class MainThread {
public static void main(String[] args) {
MyThread myThread = new MyThread();
myThread.start();
// 主线程继续执行
System.out.println("主线程继续执行");
// 可以获取子线程的执行结果
// 可以使用join()方法等待子线程执行完任务后再继续执行主线程的代码
try {
myThread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
// 子线程执行完任务后,主线程继续执行
System.out.println("子线程执行完任务后,主线程继续执行");
}
}
序列图
sequenceDiagram
participant 主线程
participant 子线程
主线程 ->> 子线程: new MyThread()
loop 开始执行子线程
主线程 ->> 子线程: myThread.start()
alt 子线程开始执行任务
子线程 ->> 子线程: 子线程要执行的任务
else 子线程暂停执行任务
子线程 ->> 子线程: 线程进入等待状态
end
end
子线程 ->> 主线程: 子线程执行完任务
以上就是如何在Java中开启子线程的步骤和代码实现。通过创建继承Thread类的子类或实现Runnable接口的类,重写run()方法,并调用start()方法来启动子