• 技术文章 >Python技术 >Python基础教程

    python协程和线程的差异

    小妮浅浅小妮浅浅2021-05-08 16:22:54原创3547

    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协程和线程的差异,希望对大家有所帮助。更多Python学习指路:python基础教程

    专题推荐:python 协程 线程
    上一篇:python析构函数如何使用 下一篇:python库如何实现对象的转换

    相关文章推荐

    • python dict.item()方法遍历字典• python序列操作的整理• python字符串中有哪些方法• python格式字符串是什么• python字符串方法format()如何使用• python列表的创建和存放• python列表添加和删除的方法• Python如何实现时间累加的计算器• python中__init__ 和__new__的对比• python中__call__的触发执行• python中__enter__和__exit__的应用场景• python中类对象及类属性的介绍• python类实例化如何实现• python实例属性的查找顺序

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网