美文网首页程序员
多进程、多线程和协程

多进程、多线程和协程

作者: 初幕 | 来源:发表于2018-04-25 01:04 被阅读0次

简单理解一下这三个东西!

多进程:

一个程序加用到的资源称之为进程,它是操作系统分配资源的基本单位,每个进程都有一个GIL锁,它有自己独立的内存空间,资源消耗大。

多线程:

多线程并不是真正意义上的多任务,因为进程有GIL锁的存在,线程执行前要先获得GIL锁才可以执行,执行代码直到sleep或者python虚拟机将其挂起,释放GIL锁,线程进行锁竞争,切换线程,会消耗资源,并且由于GIL锁的存在,一个进程永远只有一个线程被执行,因为要获得GIL锁才可以执行。虽然是这样,并不是说多线程没用,像IO密集型代码(文件处理、网络爬虫等),多线程能够有效提升效率(单线程下有IO操作会进行IO等待,造成不必要的时间浪费,如果开启了多线程,那么线程A在等待时,会切换到线程B,可以不浪费CPU的资源,从而提升程序执行的效率),如果对于CPU密集型多线程反而是鸡肋。

多核CPU可以开多进程充分利用CPU的效率,每个进程再开多线程,节约IO等待时间。

协程:

依赖于线程存在的,利用线程在等待某个资源的时候去执行其他的函数,像多线程实现的下载器,一边在下载文件一边在保存文件,此时线程就卡在下载这,这时候就可以利用协程,你在等待的时间,我去执行别的函数,协程一般用gevent模块。

相关文章

  • 多进程、多线程和协程

    简单理解一下这三个东西! 多进程: 一个程序加用到的资源称之为进程,它是操作系统分配资源的基本单位,每个进程都有一...

  • python - 多线程和协程速率测试对比

    多线程和协程都属于IO密集型,我通过以下用例测试多线程和协程的实际速率对比。 实例:通过socket客户端以多线程...

  • Python 线程和进程和协程总结

    Python 线程和进程和协程总结 线程和进程和协程 进程 进程是程序执行时的一个实例,是担当分配系统资源(CPU...

  • Python多线程、多进程和协程的实例讲解

    线程、进程和协程是什么 线程、进程和协程的详细概念解释和原理剖析不是本文的重点,本文重点讲述在Python中怎样实...

  • 进程、线程和协程

    概念 介绍 1.进程进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一...

  • 进程、线程和协程

    一、进程 1、多任务原理 多任务是指操作系统同时可以运行多个任务。 单核CPU实现多任务原理:操作系统轮流让各个任...

  • 进程、线程和协程

    1、概念 1.1、进程 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度...

  • 进程、线程和协程

    这三个概念是很基础也很重要的概念: 1.进程挂靠在操作系统,操作系统会以进程为单位,分配系统资源(CPU时间片、内...

  • 进程, 线程和协程

    进程: 程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。 (程...

  • 进程、线程和协程

    1. 进程与线程 对于操作系统来说,线程是最小的执行单元,进程是最小的资源管理单元 一个进程包含三个部分:代码、数...

网友评论

    本文标题:多进程、多线程和协程

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