博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
同步/异步
阅读量:7120 次
发布时间:2019-06-28

本文共 400 字,大约阅读时间需要 1 分钟。

同步与异步是IO操作与CPU指令协作方式的不同

同步sync

阻塞blocking:同一条线程独自完成IO操作和CPU指令操作,全程阻塞
非阻塞non-blocking:系统内核封装了检查IO的执行线程,等资源加载完后通知应用程序线程进行操作处理,虽然不用等待资源下载,但本质上还是阻塞,只是阻塞的位置变了。
ps:无论是阻塞还是非阻塞,io读写和cpu执行指令是耦合的,系统内核拷贝数据到程序进程的过程还是阻塞的,但这样做可以保证执行顺序!

异步async

解耦了IO操作和CPU执行指令,IO操作和CPU执行指令都暴露出去,让程序员控制, cpu不去参与IO的事情,IO处理完回调给应用程序便可,数据交互无需拷贝一份到程序进程,通过内存映射的方式避免了CPU的参与,但这样做执行顺序无法控制!

转载于:https://juejin.im/post/5c911a906fb9a07107192c8f

你可能感兴趣的文章
例题9-6 UVa11400 Lighting System Design(DP)
查看>>
PAT1087 All Roads Lead to Rome (30)(最短路径+dfs+回溯)
查看>>
learn go function callback
查看>>
Arcgis Engine 添加一个Symbol符号样式步骤
查看>>
kafka 控制台命令
查看>>
alpha冲刺10
查看>>
睡觉了~~
查看>>
【LeetCode】28 - Implement strStr()
查看>>
Node.js与Sails~Model数据模型
查看>>
[转]没有找到 MFC42D.DLL,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题。解决方法!...
查看>>
我再也不-或许永远不-用zend studio-受够了!
查看>>
软件工程(2019)第三次作业
查看>>
Java性能调优
查看>>
第 6 章 存储 - 039 - Data Volume 之 bind mount
查看>>
异步IO
查看>>
MySQL
查看>>
【转】Linux内核结构详解
查看>>
DevExpress学习03——label控件的背景色问题
查看>>
Cass环境下光标无显示
查看>>
linux系统监控命令汇总
查看>>