zoukankan      html  css  js  c++  java
  • 协程

    协程:非抢占式,由代码控制切换,非操作系统强制控制切换

    生成器:

    def f():

      print("ok")

      s=yield 6  用于保存并返回当前的执行状态。

      print(s)

      print("ok2")

      yield

    gen=f()  函数中加上yield再执行函数,就变成了一个生成器对象,对于生成器,必须调用next()函数才能执行生成器里面的内容,单纯 f()不执行里面的内容,因为此时已经不是一个函数了,变成了生成器,必须调用next()函数

    print(gent) ---> <generator object f at    0x000000000000....>,这里返回的是一个生成器的对象

    res=next(gen) 这里是生成器对象开始执行,遇到yield就停止,返回yield的值,print(yield)-->返回yield后面的6

    程序执行代码 next(gen) 运行结果就是 print("ok")  next()方法让让生成器往下执行了一步,打印出了ok

    gen.send(5)  #send()方法 ,也可以跟生成器进行交互 将5赋值给第一个yield,

    此时print(s)----->打印的值是5

    协程 (coroutine),又叫微线程:l0

    def consumer(name):

      print("------>ready to eat baozi")

      baozi = yield

      print("")

  • 相关阅读:
    SQL Activity Monitor
    Oracle学习计划
    SQL Server 2008 R2下载地址
    聚集索引与非聚集索引的区别
    Android图片加载后变小
    工作手记之Cransoft(四)
    触发器
    Oracle数据库体系架构概要
    html5
    基础概念
  • 原文地址:https://www.cnblogs.com/wsnan/p/11735760.html
Copyright © 2011-2022 走看看