获得徽章 7
同步、异步、阻塞、非阻塞、多路复用完整版

区别:
1. 同步 IO:一个一个排队
2. 阻塞 IO:一个一个排队,在某个位置一直等待
3. 异步 IO:拿取餐码,等送餐到桌
4. 非阻塞 IO:拿取餐码,轮询进度,之后自取
5. 多路复用:拿取餐码,等待叫号,之后自取

总结:
1. 同步 IO 和阻塞 IO 的区别在于阻塞 IO 会一直卡在某个地方
2. 异步 IO 和非阻塞 IO 的区别
- 异步 IO 是系统直接将处理后的结果给你
- 非阻塞 IO 是轮询得知就绪,然后你自行处理结果
- 多路复用是通知你就绪了,然后你自行处理结果
展开
凉了的凉茶于2025-02-27 10:51发布的图片
凉了的凉茶于2025-02-27 10:51发布的图片
凉了的凉茶于2025-02-27 10:51发布的图片
评论
异步、非阻塞、多路复用区别:
异步在拿取餐码后等待送餐到桌即可
非阻塞在拿取餐码后轮询结果,之后自己取餐
多路复用在拿取餐码后等待叫号,之后自己取餐
凉了的凉茶于2025-02-27 10:26发布的图片
评论
同步 IO:一个一个排队
阻塞 IO:一个一个排队,在某个位置一直等待
异步 IO:拿取餐码,等叫号
非阻塞 IO:那取餐码,不断查询进度

总结:
1. 同步 IO 和阻塞 IO 的区别在于阻塞 IO 会一直卡在某个地方。
2. 异步 IO 和 非阻塞 IO 的区别在于你知道完成了的方式,异步 IO 则是系统通知你,非阻塞 IO则是自己不断查询得知
展开
凉了的凉茶于2025-02-27 09:50发布的图片
1
借钱(事务)
第一天
● 早上:A 给 B 100元(原子性)
● 中午:A 再给 B 100元,二次一共 200 元(隔离性)
● 晚上:A 清点钱,少 200 元,B 清点钱,多 200 元(一致性)
第二天
● 早上:A、B 再清点钱,和昨晚一样(持久性)

说明:
第一天
● 早上:A 给 B 100元(A 有两种情况,要么将 100 全部给 B,要么自己留着)
● 中午:A 给 B 100元,二次一共 200 元(两次给钱互不影响)
● 晚上:A 清点钱,少 200 元,B 清点钱,多 200 元(符合客观规律)
第二天
● 早上:A、B 再清点钱,和昨晚一样(给出去的钱,不会回来了)

总结
一次给钱是原子
二次给钱是隔离
一次清点是一致
二次清点是持久

借条(redo 日志)
第三天
● 早上:A 和 B 聊天讨论到借钱这件事,但因为 B 昨天被车撞了,导致失忆(崩溃)
● 中午:A 回家翻出了借条(redo 日志),里面明确写了“昨天早上,A 少 100 元,B 多 100 元”,“昨天中午,A 少 100 元,B 多 100 元”
● 晚上:A 把借条拍在桌子上,B 看着借条慢慢回忆起来了(重建)

第三天
● 早上:A 和 B 聊天讨论到借钱这件事,但因为 B 昨天被车撞了,导致失忆(数据库崩溃后导致数据存储有问题)
● 中午:A 回家翻出了借条(redo 日志),里面明确写了“昨天早上,A 少 100 元,B 多 100 元”,“昨天中午,A 少 100 元,B 多 100 元”(redo 日志会记录数据库中那些地方被修改了,比如第 4 页偏移量是 234 的位置修改为 100)
● 晚上:A 把借条拍在桌子上,B 看着借条慢慢回忆起来了(数据库崩溃后的数据恢复)
展开
评论
下一页
个人成就
文章被点赞 29
文章被阅读 26,029
掘力值 684
收藏集
3
关注标签
34
加入于