同步 、异步 、阻塞、非阻塞 简单理解和例子

这一块很长时间都没有理解透,究其原因是因为实际应用的时候么有想那么多原理性的东西,今天重新回顾了一下,也参考了其他大牛们的理解,记录一下自己的看法,增强一下记忆.

目录

同步

异步

阻塞

非阻塞

同步阻塞

同步非阻塞

异步阻塞

异步非阻塞


同步

用户进程触发IO操作后进入等待或轮询的状态,直到IO操作进行.

比方说我去商场里上厕所,前面有人排队,我只能等着轮到我了再去方便.

异步

用户进程触发IO操作后就不管了,去干别的事情了,当IO操作就绪的时候给进程发个通知告诉他一声.

比方说我想买张火车票,在购票软件上点了抢票,当抢到火车票了购票软件会给我发条短信,我就可以去取票了.在此期间我并没有亲自去排队.

阻塞

进程读写时遇到暂时不能读写的情况时进入等待状态,直到有东西读写.

比方说我看一个视频,看到一半网卡了,我只能暂停等着缓冲出来.

非阻塞

进程读写暂时不可用时直接返回.

比方说我去找老板,走到一半秘书告诉我老板今天不在,我就直接回家了.

 

同步阻塞

服务器实现的方式是:一个连接一个线程.为每个连接开辟一个线程准备接受读写请求

就像是我们每个人面前都有一个锅,锅里全是肉,当我们饿了的时候在自己面前的锅里捞肉吃就行了,但是每人一口锅使得资源浪费,饿不饿都要有锅

同步非阻塞

服务器的实现方式是:一个请求一个线程,当有请求是开辟线程实现IO操作

就像是我们很多人在一个屋里,谁饿了说一下,就在你面前放下吃的,省去了每人一口锅的钱,但是需要有人专门在不停地问谁需要东西吃

异步阻塞

发起IO操作后不等待操作完成,操作完成后收到通知

异步非阻塞

发起IO操作后不等待操作完成直接返回,操作完成后收到通知

异步的只用记住通知就行,IO的具体实现交给操作系统完成, 用户进程只接收通知,就可以安排下一步的数据处理了

 

有什么问题或者意见的请给我留言,互相讨论提高,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值