2025年java实现线程通信的几种方式[通俗易懂]

java实现线程通信的几种方式[通俗易懂]前言 在多线程的世界里 线程与线程之间的交互无处不在 只不过在平时的开发过程中 大多数情况下 我们都在单线程的模式下进行编码 即使有 也直接借助框架自身的机制实现了 其实线程之间的通信在 JDK 中是一个比较深的问题 比如大家熟知的消息中间件的实现 从某种角度上讲 就借助了多线程通信的思想 下面总结了 JDK 中常用的几种实现线程通信的方式 提供参考 1 synchronized 实现方式

前言

在多线程的世界里,线程与线程之间的交互无处不在,只不过在平时的开发过程中,大多数情况下,我们都在单线程的模式下进行编码,即使有,也直接借助框架自身的机制实现了,其实线程之间的通信在JDK中是一个比较深的问题,比如大家熟知的消息中间件的实现,从某种角度上讲,就借助了多线程通信的思想,下面总结了JDK中常用的几种实现线程通信的方式,提供参考

1、synchronized实现方式

可能很多小伙伴们会有疑问,synchronized是对共享资源加锁使用的,怎么和线程通信扯在一起呢?这里纠正一个小小的偏见,也是我近期才矫正过来的

我们要弄明白的一点是,为什么会存在线程通讯这个问题呢?根据一些技术大牛们的说法就是,多个线程之间需要相互传递一些参数、变量或者是各个线程的执行需要互相依赖各自的结果,比如我们熟知的生产者消费者模式,只有生产者生产出来了东西,消费者才能进行消费啊

这里模拟假如有2个线程,需要操作一个共享资源,即修改共享资源的数据,使用synchronized的方式如下:

public class SycDemo1 {

private static Object lock = new Object();

private static String weather = "sunny";

public static void main(String[] args) {

new Thread(()->{
synchronized (lock){
System.out.println("


编程小号
上一篇 2025-07-15 22:51
下一篇 2025-07-14 14:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/124238.html