美文网首页
异步新理解

异步新理解

作者: doob_9117 | 来源:发表于2019-05-11 18:19 被阅读0次

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

    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()

    相关文章

      网友评论

          本文标题:异步新理解

          本文链接:https://www.haomeiwen.com/subject/otmjbqtx.html