| 1、使用场景:线程A执行到一半,需要一个数据,这个数据需要线程B去执行修改,只有B修改完成之后,A才能继续操作 |
| 2、线程A的run方法里面,调用线程B的join方法,这个时候,线程A会等待线程B运行完成之后,再接着运行 |
| public class Main { |
| |
| public static void main(String[] args) { |
| Thread thread = new Thread(() -> { |
| System.out.println(Thread.currentThread().getName()+"开始运行"); |
| try { |
| Thread.sleep(3000L); |
| } catch (InterruptedException e) { |
| e.printStackTrace(); |
| } |
| System.out.println(Thread.currentThread().getName()+"结束运行"); |
| }, "线程1"); |
| |
| new Thread(() -> { |
| System.out.println(Thread.currentThread().getName()+"开始运行"); |
| thread.start(); |
| try { |
| thread.join(); |
| } catch (InterruptedException e) { |
| e.printStackTrace(); |
| } |
| System.out.println(Thread.currentThread().getName()+"运行结束"); |
| }, "线程2").start(); |
| } |
| |
| } |
| |
| # 控制台输出结果: |
| 线程2开始运行 |
| 线程1开始运行 |
| 线程1结束运行 |
| 线程2运行结束 |
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术