进程、线程、协程之间的区别

进程

  • 数据隔离
  • 数据不安全(数据共享Manager())
  • 操作系统级别的
  • 开启关闭开销大
  • 能利用多核

线程

  • 数据共享
  • 数据不安全(出现 if while += -=)
  • 操作系统级别的
  • 开启关闭开销小
  • Cpython解释器下不能利用多核

协程

  • 数据共享
  • 数据安全(协程之间的所有切换都时由用户进行切换的)
  • 用户级别的
    • 好处:减轻了操作系统的负担,一条线程如果开了多个协程,那么给操作系统的印象就是这条线程很忙,这样就能多争取一些时间片来时间来被CPU执行,那么程序的效率就提高了
  • 开启关闭开销更小
  • 不能利用多核(协程本质上就是一条线程)
  • 协程相比于线程的弊端
    • 协程的所有切换操作都基于用户,那么只有在用户级别能够感知到的IO操作才会用到协程模块来切换规避IO(Socket,请求网页的)
    • 但是一些和文件操作相关的IO只有操作系统能感知到
posted @ 2021-07-02 01:06  刘家小仙女  阅读(49)  评论(0编辑  收藏  举报