python协程和线程的差异

  • 更新时间:2021-07-02 09:58:18
  • 编辑:王元勋
给网友们整理相关的编程文章,网友寿思淼根据主题投稿了本篇教程内容,涉及到Python相关内容,已被400网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。

参考资料

正文内容

无意中在网上看到《python协程和线程的差异》,实例用法很详细,重新排版了一下发到这里,为了方便大家的阅读。

python协程和线程的差异

1、差异说明

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

协程的切换只是单纯的操作CPU的上下文,一秒钟切换个上百万次系统都可以。

2、实例

import time
def work1():
while True:
print("----work1---")
yield
time.sleep(0.5)
def work2():
while True:
print("----work2---")
yield
time.sleep(0.5)
def main():
w1 = work1()
w2 = work2()
while True:
next(w1)
next(w2)
if __name__ == "__main__":
main()
 
----work1---
----work2---
----work1---
----work2---
----work1---
----work2---
----work1---
----work2---
----work1---
----work2---
----work1---
----work2---
...省略...

以上就是python协程和线程的差异,希望对大家有所帮助。

相关教程

  • Pythong中关于getpass模块的具体介绍

    最近在看Python标准库官方文档的时候偶然发现了这个模块。仔细一看内容挺少的,只有两个主要api,就花了点时间阅读了一下源码,感觉挺实用的,在这安利给大家。下面这篇文章主要给大家介

    发布时间:2019-07-11

  • python的内置函数有哪些

    所谓内置函数,就是python中自动加载的函数,可以直接使用。常用的内置函数有help()函数,dir()函数,input()函数,print()函数,type()函数。

    发布时间:2019-06-27

用户留言