美文网首页
python多任务之进程、线程、协程的比较

python多任务之进程、线程、协程的比较

作者: rookieyu | 来源:发表于2019-06-10 10:13 被阅读0次

python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程。Python提供了非常好用的多进程包multiprocessing,只需要定义一个函数,Python会完成其他所有事情。借助这个包,可以轻松完成从单进程到并发执行的转换。multiprocessing支持子进程、通信和共享数据、执行不同形式的同步,提供了Process、Queue、Pipe、Lock等组件。

1. 进程、线程、协程之间的关系

线程是依附在进程里面的,没有进程就没有线程

一个进程至少有一个线程,进程里面可以有多个线程

一个线程里面可以有多个协程

进程。线程、协程关系图

2.进程、线程、线程的对比

进程是系统进行资源分配基本单位,每启动一个进程操作系统都需要为其分配运行资源。

线程是运行程序中的一个执行分支,是CPU调度基本单位。

进程切换需要的资源最大,效率很低

线程切换需要的资源一般,效率一般(当然了在不考虑GIL的情况下)

协程切换任务资源很小,效率高

多进程、多线程根据cpu核数不一样可能是并行的,但是协程是在一个线程中 所以是并发

3. 功能对比

进程,能够完成多任务,比如 在一台电脑上能够同时运行多个QQ

线程,能够完成多任务,比如 一个QQ中的多个聊天窗口

协程,能够完成多任务,但是不能完成多核CPU的充分使用

4. 区别

进程之间不共享全局变量

线程之间共享全局变量,但是要注意资源竞争的问题,解决办法: 互斥锁或者线程同步

创建进程的资源开销要比创建线程的资源开销要大

进程是操作系统资源分配的基本单位,线程是CPU调度的基本单位

线程不能够独立执行,必须依存在进程中

多进程开发比单进程多线程开发稳定性要强

优缺点

多进程:(适用于计算密集型的多任务)

优点:可以用多核

缺点:资源开销大

多线程:(适用于IO密集型的多任务)

优点:资源开销小

缺点:不能使用多核

协程:

优点:资源开销小

缺点:是程序员自己设计的微线程,可以我们自己根据需求进行调用。

相关文章

  • 2018-11-22进程,线程,协程

    进程:代码+资源,可以实现多任务线程:运行在进程中的最小单元,消耗资源小于进程 可以实现多任务协程:Python独...

  • Python多任务-进程,线程,协程比较

    进程、线程、协程对比 文章来源于网上 请仔细理解如下的通俗描述 有一个老板想要开个工厂进行生产某件商品(例如剪子)...

  • python多任务之进程、线程、协程的比较

    python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使...

  • 网络爬虫:多任务-进程、线程

    实现多任务的方式 多线程多进程协程多线程+多进程 为什么你能够实现多任务? 并行:同时发起,同时执行,多进程,进程...

  • 简单了解进程、线程、协程

    当单任务不能满足工作的需要,只是需要使用多任务,多任务分为多进程,多线程,多协程 先有进程,进程创建线程,线程依附...

  • Python 高级 7

    迭代、迭代器、生成器、协程、yield、greenlet、gevent、进程线程协程对比、gevent多任务图片下...

  • 浅析python的GIL

    Python中的GIL锁 在Python中,可以通过多进程、多线程和多协程来实现多任务。 在多线程的实现过程中,为...

  • python笔记3

    python 无线程池 ,有进程池 阻塞 意外着等待子进程结束 字典的无序性 : 进程,线程,协程 协程,又称微...

  • 4-7

    协程 协程,又称微线程,纤程。英文名Coroutine。 协程是啥 协程是python个中另外一种实现多任务的方式...

  • 协程

    协程 协程,又称微线程,纤程。英文名Coroutine。 协程是啥 协程是python个中另外一种实现多任务的方式...

网友评论

      本文标题:python多任务之进程、线程、协程的比较

      本文链接:https://www.haomeiwen.com/subject/mewgxctx.html