异步新理解

很多时候程序并不能这样写

a()
ret = IO()
c(ret )
d()
因为如果IO阻塞了将会影响d的执行,d跟IO没关系。
这时候你会说为什么不把d放a()下面呢?这里代码简单,离得近,
能看出来也方便移动,但是在一个实际的大工程里,是看不出来的,有可能也办不到。

可是有时候如果不等待IO的返回值又没法执行c,
这时候就应该选择异步执行了。

比较通用的办法是把有顺序依赖的动作c当回调函数传给另一个执行
耗时操作的线程,线程执行完这个耗时操作后调用回调函数。
立即返回。另一个线程执行完耗时的操作后调用回调函数

或者把有顺序依赖的动作c当回调函数传给IO(),
IO自己开一个线程执行然后马上返回,线程执行好了就调用c()。
当IO执行完了他自己调用c
a()
ret = IO(c)
d()

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容