关于同步/异步,阻塞/非阻塞

本文深入解析了同步与异步、阻塞与非阻塞的概念,澄清了两者之间的常见误解,强调了它们在软件设计中的正确应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

同步与异步:

    同步是指两个或者多少个流程(行为)之间存在依赖关系,比如流程A必须等待流程B结束之后才能结束。反之异步就是没有依赖关系。

阻塞与非阻塞:

    阻塞是指流程A在等待其他流程的结果期间,不能做其他事情,被挂起。反之,非阻塞就是可以做其他事情。

 

看了网上很多说法,都有 同步阻塞,同步非阻塞,异步阻塞,异步非阻塞这些区分,就是因为这么个区分,让很多人理不清之间的关系。其实这么划分是不对的。

同步阻塞和同步非阻塞,很好理解,流程A在等待流程B完成,过程中能完成中是否可以做别的事。

但是,将异步也分了阻塞和非阻塞,就不对了。其实从概念上讲,根本没有“异步阻塞”这个说法。异步必然是非阻塞的。网上有说法是,等待通知,不能干其他事,称为异步阻塞,由于等待通知而阻塞,说明流程之间已经有了依赖关系,这已经不能称之为异步了,这是同步。并不是说交给其他线程去干就叫异步。

还看到一种说法:说同步异步是强调的消息通信方式,等待返回的叫同步,立刻返回的叫异步,那么请问,在这种概念下,怎么会有同步非阻塞这一说?还有各种文章说着说着就换了概念主体的,自相矛盾的就不提了。

同步异步,阻塞非阻塞,概念主体是不同的。请勿混淆。

ps. 除了AIO,其他的都是同步IO。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值