zoukankan      html  css  js  c++  java
  • Generator的异步编程

    对比下常用的异步处理的方案:

    1,回调

    我们常说的 “回调地狱”,就是多个异步操作时候,代码多重嵌套,异步之前形成强耦合,如果修改一处,其他地方也是跟着修改。(callback hell).

    2,promise

    其实promise的出现呢,就是为了解决回调地狱的问题,不是多重嵌套,而是链式调用,就是针对回调函数的改进,使用then的方法,但是代码依然是冗余,如果异步多的话,一堆的then。

    3,Generator函数

    协程(coroutine),多线程互相协作,完成异步操作。

    运行流程:

    协程A开始——A执行到一半,暂停,执行权到协程B——一段时间后B交还执行权——A恢复执行。

    上面的协程A就是个异步的操作。执行一半停下来,过段时间再从暂停的地方开始执行。

    Generator函数里面的yield命令 是异步两个阶段的分界线。

    协程遇到yeild命令就暂停,等到执行权返回再从暂停的地方继续往后执行。

  • 相关阅读:
    MySql常用命令
    PHP截断函数mb_substr()
    explode() 字符串转换数组
    php取得当前时间函数
    Apache与Nginx的比较
    thinkphp5.0环境变量配置
    thinkphp5.0配置作用域
    thinkphp5.0动态配置
    Mac 下查看 Android Studio 的 SHA1的方法
    Mac 下 gradle 路径
  • 原文地址:https://www.cnblogs.com/tangjiao/p/9050968.html
Copyright © 2011-2022 走看看