当前位置: 首页 > article >正文

同步和异步的区别

同步和异步的区别

  • 同步
    • 多线程的数据共享问题
    • Java语言的同步机制
  • 异步
    • 定义
    • 什么时候使用异步
  • 生活实例

同步

多线程的数据共享问题

多个线程访问同一资源时,需要以某种顺序来保证资源在某一时刻只能被一个线程使用。

例如:当多个线程同时对同一数据进行写操作。即A线程需要使用某个资源,此时这个资源正在被B线程使用,同步机制就会让A线程进行等待,直到B线程结束对该资源的使用,A线程才能使用该资源。

同步机制保证了资源的安全问题

Java语言的同步机制

  1. 同步代码块
  2. 同步方法
  3. 可以使用synchronized关键字来实现同步(该方法有较大的系统开销,有的时候会造成死锁问题)

异步

定义

同步的相反。

每个线程都包含了自己的数据和方法,在进行输入输出处理时,不必关心其他线程的状态或者行为。

也不必等待输入输出处理完毕才返回。

什么时候使用异步

在程序执行过程中调用了一个需要花费很长时间的方法,但是我们不希望程序等待这个方法的返回。此时可以使用异步编程,异步编程提高了程序的效率

生活实例

同步:银行的一个窗口排队,按照顺序执行。
异步:银行的多个窗口排队。

参考资料:学习Java,你一定要知道同步和异步的区别!


http://www.kler.cn/a/7261.html

相关文章:

  • 计算机编程中的设计模式及其在简化复杂系统设计中的应用
  • mybatis 动态SQL语句
  • 基于Springboot+Vue的中国蛇类识别系统 (含源码数据库)
  • 从零开始学习 sg200x 多核开发之 eth0 MAC 地址修改
  • 深入List集合:ArrayList与LinkedList的底层逻辑与区别
  • JS学习日记(jQuery库)
  • unity,通俗解释什么是协程
  • 无公网IP,SSH远程连接Linux CentOS服务器【内网穿透】
  • 2023年第十四届蓝桥杯javaB组省赛真题
  • deepin15.11无法正常输入汉字问题的解决
  • UE5实现贴地面效果(RT+Decal)
  • Java设计模式(三)原型模式
  • SpringBoot源码学习系列——自动配置原理(三)
  • SpringBoot:自动配置源码底层原理分析
  • Web漏洞-文件包含漏洞超详细全解(附实例)
  • 章节2 行走数据江湖,只需一行代码
  • windows 解决惠普主机核显无法输入VGA、HDMI信号问题
  • MATLAB结构化程序设计
  • MySQL 存储引擎
  • Java设计模式(九)外观模式
  • mongodb和mysql双写数据一致性问题
  • 如何提高逻辑思维,亲测,这3个方法有效
  • C++封装详解——从原理到实践
  • 实验四 配置OSPF协议
  • 投资大咖说,消费产业3个升级方向
  • java 重试