join方法可以在多线程中帮我们实现调用线程的同步效果,比如,现在有三个线程,a,b,c
a中启动了b和c线程异步去执行一件事,但是a希望他们做完以后再继续往下执行,那么就可以在调用b和c启动之后,调用每个线程的join方法,意思是等待它们执行完毕,代码如下:
- public static void main(String[] args) throws InterruptedException {
- Thread thread = new Thread() {
- @Override
- public void run() {
- System.out.println("我是线程1");
- }
- };
- Thread thread1 = new Thread() {
- @Override
- public void run() {
- System.out.println("我是线程2");
- }
- };
- thread.join();
- thread1.join();
-
- System.out.println("我是主线程");
- }
这个方法可以理解成打断线程的当前状态,有以下几个场景啊:我们通常可以用来实现通过一个线程,控制另一个线程是否运行,在需要通知另一个线程的时候调用interrupt(),然后在停止的线程中有一个判断逻辑,判断当前线程的状态
- public static void main(String[] args) throws InterruptedException {
- Thread thread = new Thread() {
- @Override
- public void run() {
- LockSupport.park();
-
- System.out.printf("当前打断状态为%s\n",Thread.interrupted());
-
- LockSupport.park();
- System.out.println("dssdsds");
- }
- };
- thread.start();
- thread.interrupt();
-
- }