线程同步和异步的区别是什么

线程同步是多个线程同时访问同一资源,等待资源访问结束,浪费时间,效率低。线程异步:访问资源时在空闲等待时同时访问其他资源,实现多线程机制。简单来说,同步必须执行到底之后才能执行其他操作,而异步可以任意操作。

线程同步和异步的区别是什么-Worktile社区

在发出一个功能调用时,在没有得到结果之前,该调用就不返回,同时其它线程也不能调用这个方法。按照这个定义,其实绝大多数函数都是同步调用。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务。例如Window API函数SendMessage。该函数发送一个消息给某个窗口,在对方处理完消息之前,这个函数不返回。

当对方处理完毕以后,该函数才把消息处理函数所返回的LRESULT值返回给调用者。在一般情况下,创建一个线程是不能提高程序的执行效率的,所以要创建多个线程。但是多个线程同时运行的时候可能调用线程函数,在多个线程同时对同一个内存地址进行写入,由于CPU时间调度上的问题,写入数据会被多次的覆盖,所以就要使线程同步。

异步双方不需要共同的时钟,也就是接收方不知道发送方什么时候发送,所以在发送的信息中就要有提示接收方开始接收的信息,如开始位,同时在结束时有停止位。与同步相对应,异步指的是让CPU暂时搁置当前请求的响应,处理下一个请求,当通过轮询或其他方式得到回调通知后,开始运行。

延伸阅读

线程同步的三种方式

第一种:同步代码块:使用synchronized修饰的代码块叫做同步代码块,同步代码块会被JVM自动加上内置锁,从而实现同步(同一时间只能有同一个线程执行)

第二种:同步方法:使用synchronized修饰的方法叫同步方法,java的每个对象都有一个内置锁,当用此关键字修饰方法的时候,内置锁会保护整个方法,在调用该方法前,需要获得内置锁,否则就处于阻塞状态

第三种:Lock锁机制:通过创建Lock锁对象,使用lock()方法加锁,使用unlock()方法解锁,来保护指定的代码块

文章标题:线程同步和异步的区别是什么,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37967

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年2月13日 上午11:33
下一篇 2023年2月13日 下午1:34

相关推荐

  • app模板开发有什么缺点

    app模板开发有什么缺点:1、难申请软著;2、较难上架APP商城;3、用户粘度不高;4、二次开发更新成本高;5、APP模板功能少;6、兼容性较差;7、安全性差。APP模板都是相同源码,如果想申请软著,是非常困难的。 一、难申请软著 APP模板都是相同源码,如果想申请软著,是非常困难的。 二、较难上架…

    2023年5月31日
    400
  • 大型网络游戏的数据库是怎么设计的呢

    大型网络游戏的数据库是怎么设计的:1、数据库结构设计;2、数据库性能设计;3、数据库安全设计;4、数据库备份和恢复;5、数据库版本控制。在设计数据库时,需要考虑游戏的数据结构和关系,这可以帮助您定义数据库表格的结构、主键、外键以及其他必要的字段。 一、数据库结构设计 在设计数据库时,需要考虑游戏的数…

    2023年6月7日
    400
  • 光纤模块单模多模区别

    光纤模块单模多模区别是:1、波长不同;2、应用范围不同;3、光纤类型不同;4、成本不同;5、光源不同;6、传输距离不同。一般多模光波长为850nm,单模光波长则主要以1310nm和1550nm为主。多模光模块只能用于短距离传输;而单模光模块可用于远距离传输。

    2023年1月31日
    11600
  • 互联网线上推广都有哪些方式

    互联网线上推广的方式:1、SEM;2、SEO;3、社交平台推广;4、电子邮件营销;5、短视频推广;6、新闻营销&软文营销;7、博客营销;8、问答营销&知识型营销。SEM是指,基于搜索引擎平台的网络营销,在人们检索信息的时候将信息传递给目标用户。

    2023年1月6日
    7800
  • 研发文档系统的作用是什么

    研发文档系统的作用是:1、让企业可以更好的管理资料;2、可以有效降低成本;3、可以提高工作效率;4、提升工作效率;5、更好地保障员工权益和利益。企业在建立文档系统时,都是需要对文档进行修改、复制、保存、同步到移动端工作软件中,使用起来也很方便,并且实现了智能管理的效果。

    2022年11月14日
    12400
  • 进度管理如何控制

    进度管理要做到:明确项目目标和范围;制定项目进度管理计划;制定项目进度计划;监控和控制进度;工具化。在开始项目进度管理之前,必须清楚地了解项目的目标和范围。这包括确定项目的目的、可交付成果、时间期限以及相关的资源需求。 明确项目目标和范围 在开始项目进度管理之前,必须清楚地了解项目的目标和范围。这包…

    2023年3月30日
    2900
  • 任务调度系统需要什么技术

    任务调度系统需要以下技术:一、数据库技术;二、分布式计算技术;三、消息队列技术;四、安全技术;五、监控技术;六、自动化部署技术;七、分布式存储技术;八、人工智能技术。任务调度系统需要一个可靠的数据库来存储任务、调度信息和执行结果。 一、数据库技术 任务调度系统需要一个可靠的数据库来存储任务、调度信息…

    2023年4月16日
    2100
  • 资产管理APP开发有什么作用

    资产管理APP开发有什么作用:1、资金记录;2、每日额度;3、超支提醒;4、管理计划;5、未来计划。资金记录是指,app会自动帮助用户记录下每笔资金的进入与支出,对于每一笔资金的动向都能够心知肚明。 一、资产管理app开发有什么作用 1、资金记录 app会自动帮助用户记录下每笔资金的进入与支出,对于…

    2023年6月3日
    500
  • 敏捷看板和任务板怎么区分

    敏捷看板和任务板的区别有:一、用途不同;二、粒度不同;三、功能不同;四、适用范围不同。敏捷看板的用途包括:可视化迭代过程、优化团队协作、提高工作效率。任务板的用途包括:可视化任务管理、优化任务分配、提高工作效率。 一、用途不同 敏捷看板的用途包括:可视化迭代过程、优化团队协作、提高工作效率。 任务板…

    2023年4月16日
    13400
  • 数据库调优工具有哪些

    数据库调优工具有:1、mysqltuner.pl;2、tuning-primer.sh;3、pt-variable-advisor;4、pt-qurey-digest。mysqltuner.pl是mysql一个常用的数据库性能诊断工具,主要检查参数设置的合理性包括日志文件、存储引擎、安全建议及性能分…

    2023年1月11日
    8100

发表回复

登录后才能评论
联系我们
站长微信
站长微信
分享本页
返回顶部