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

2021/7/2 7:21:19

本文主要是介绍进程、线程、协程之间的区别,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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

  • 进程:
    • 数据隔离
    • 数据不安全(数据共享Manager())
    • 操作系统级别的
    • 开启关闭开销大
    • 能利用多核
  • 线程:
    • 数据共享
    • 数据不安全(出现 if while += -=)
    • 操作系统级别的
    • 开启关闭开销小
    • Cpython解释器下不能利用多核
  • 协程:
    • 数据共享
    • 数据安全(协程之间的所有切换都时由用户进行切换的)
    • 用户级别的
      • 好处:减轻了操作系统的负担,一条线程如果开了多个协程,那么给操作系统的印象就是这条线程很忙,这样就能多争取一些时间片来时间来被CPU执行,那么程序的效率就提高了
    • 开启关闭开销更小
    • 不能利用多核(协程本质上就是一条线程)
  • 协程相比于线程的弊端
    • 协程的所有切换操作都基于用户,那么只有在用户级别能够感知到的IO操作才会用到协程模块来切换规避IO(Socket,请求网页的)
    • 但是一些和文件操作相关的IO只有操作系统能感知到


这篇关于进程、线程、协程之间的区别的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程