前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3.协程的优劣势

3.协程的优劣势

原创
作者头像
jiagui
发布2024-07-08 15:32:52
480
发布2024-07-08 15:32:52
举报
文章被收录于专栏:Python协程Python协程

优点

  1. 多线程编程上手难度较高,因为调度程序过程中的任何时候都能中断线程, 必须记住‘保留锁’,保护程序中重要部分,防止多线程在执行的过程中断。
  2. 而协程默认会做好全方位保护,以防止中断。我们必须规定“显示产出”才能让程序的剩下部分运行。对它来说,无需‘保留锁’。 而在多个线程之间同步操作,协程自身就会同步,因为在任意时刻,有且仅有一个协程在运行。

总结下大概下面几点:

  • 无需系统内核的上下文切换,减小开销。
  • 无需原子操作锁定及同步的开销,不用担心资源共享的问题。
  • 单线程即可实现高并发,单核 CPU 即便支持上万的协程都不是问题,所以很适合用于高并发处理,尤其是在应用在网络爬虫中。

缺点

  1. 无法使用 CPU 的多核 协程的本质是个单线程,它不能同时用上单个 CPU 的多个核,协程需要和进程配合才能运行在多核CPU 上。我们日常所编写的绝大部分应用都没有这个必要,除非做一些密集型应用,这个时候才可能会用到多进程和协程。
  2. 处处都要使用非阻塞代码 写协程就意味着你要会写一些非阻塞的代码。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 优点
  • 缺点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档