4-7

作者: 冰鈊夢 | 来源:发表于2019-07-10 10:46 被阅读0次

协程

协程,又称微线程,纤程。英文名Coroutine。

协程是啥

协程是python个中另外一种实现多任务的方式,只不过比线程更小占用更小执行单元(理解为需要的资源)。 为啥说它是一个执行单元,因为它自带CPU上下文。这样只要在合适的时机, 我们可以把一个协程 切换到另一个协程。 只要这个过程中保存或恢复 CPU上下文那么程序还是可以运行的。

通俗的理解:在一个线程中的某个函数,可以在任何地方保存当前函数的一些临时变量等信息,然后切换到另外一个函数中执行,注意不是通过调用函数的方式做到的,并且切换的次数以及什么时候再切换到原来的函数都由开发者自己确定

协程和线程差异

在实现多任务时, 线程切换从系统层面远不止保存和恢复 CPU上下文这么简单。 操作系统为了程序运行的高效性每个线程都有自己缓存Cache等等数据,操作系统还会帮你做这些数据的恢复操作。 所以线程的切换非常耗性能。但是协程的切换只是单纯的操作CPU的上下文,所以一秒钟切换个上百万次系统都抗的住。

简单实现协程

importtimedefwork1():whileTrue:        print("----work1---")yieldtime.sleep(0.5)defwork2():whileTrue:        print("----work2---")yieldtime.sleep(0.5)defmain():w1 = work1()    w2 = work2()whileTrue:        next(w1)        next(w2)if__name__ =="__main__":    main()

运行结果:

----work1---

----work2---

----work1---

----work2---

----work1---

----work2---

----work1---

----work2---

----work1---

----work2---

----work1---

----work2---

...省略...

相关文章

  • 4-7

    73.88kg 很震惊,我昨天吃那么多居然还可以瘦二两?!在此激励作用下我起床做了50个波比跳。想想这几天居然都是...

  • 4-7

    爱你的人你偏偏不喜欢。 疼你的人你偏偏不在乎。 等你的人你偏偏看不见。 人生总要经历一些事,总有一天会有让一艘喜欢...

  • 4-7

  • 4-7

    今天算是准时下班的,不想回家,约了邢雪逛吃

  • 4-7

    失败感从头浇到脚底。妈妈一个人在家,LF不接她电话,她堵到单位门口,也没说出个所以然,我再给LF电话,他也没有接,...

  • 4-7

    协程 协程,又称微线程,纤程。英文名Coroutine。 协程是啥 协程是python个中另外一种实现多任务的方式...

  • 4-7

    4-7 日记 大早闹钟一响,便起床看书,今日已经定下目标,需要重读一次曾国藩传,重读还是右更多的感悟,便在书...

  • 4-7

    今天?! 雨 我好像词穷了 也许真的长大了

  • 4-7

    Dear: “低小下”的嘲風先生草堂 微信群上的聊天记录如下,请查收。 ————— 2021-04-01 ————...

  • 4-7

    今天微笑了吗?微笑了。 今天的心情还好,没有出现什么大的问题,就是右眼皮跳了一下,心里就有点儿不自然了。害怕...

网友评论

      本文标题:4-7

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