没人讲得清?同步、异步、阻塞、非阻塞

前言

几个月前就搜过这方面的博文,以为自己懂了。经过几个月的沉淀,有了更深的理解

百度百科

另外,百度百科的这一版本真的让人欲哭无泪,先不说这个解释是否得当,起码是有一个明显的错误:非阻塞允许多个线程同时进入临界区

学过操作系统的都知道,临界区指的是一段代码,而临界资源的互斥访问是互斥锁信号量这些控制的。假如一个文件同时读写,那肯定乱套。
学海无涯,我不敢认定自己绝对正确,但是,上面那句话要么大错特错,要么重点跑偏

阻塞和非阻塞
而这位朋友写这句话的出处也被我找到了
阻塞非阻塞

总结

同步和异步

同步和异步关注的是消息通信机制。关注的是被调用者的行为
同步:被调用者得到结果才返回给调用者。
异步:被调用者立即返回。调用者如何拿到结果?轮询和回调。被调用者通过状态、通知来通知调用者,或通过回调函数处理这个调用。

异步典型应用Ajax请求,通过ajax发送千万个请求,不会阻塞住后面代码的执行,后面代码不会说等ajax请求完再执行,后台处理给ajax返回后触发回调函数

阻塞和非阻塞

阻塞和非阻塞关注的是调用者在等待调用结果(消息,返回值)时的状态.

阻塞和非阻塞指的是调用者在等待返回结果(或输入)时的状态。阻塞时,在调用结果返回前,当前线程会被挂起,并在得到结果之后返回。非阻塞时,如果不能立刻得到结果,则该调用者不会阻塞当前线程。因此对应非阻塞的情况,调用者需要定时轮询查看处理状态。

弱水三千,各取一瓢

有时,不同的回答都可以是对的,它们有不同的侧重点和角度,最好呢,还是具体场景具体分析

那些年让你迷惑的阻塞、非阻塞、异步、同步
同步 异步 阻塞 非阻塞 区别
https://www.zhihu.com/question/19732473/answer/241673170
关于同步/异步和阻塞/非阻塞的了解,求大神指导有错误和遗漏的地方吗?
也谈阻塞、非阻塞、同步、异步

若有错误,请大家指正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值