线程池

import threading
import time
def myThread():for i in range(10):time.sleep()print('d')
sep=threading.Semaphore(1)
threadlist=[]
for name in ["a","b"]:mythd=threading.Thread(target=myThread,args=(name,))mythd.start()threadlist.append(myThread)
for thread in threadlist:thread.join()

进程池

import multiprocessing
import time
import os
def getdata(data):print('start')time.sleep(2)print(os.getpid())return data**data
if __name__=="__main__":mylist=[x for x in range(100)]pool=multiprocessing.Pool(processes=4)pool_outputs=pool.map(getdata,mylist)pool.close()pool.join()print(pool_outputs)

进程池

from multiprocessing import Barrier
import multiprocessing
import time
import os
def getdata(data):with myBarrier:print('start')time.sleep(2)print(os.getpid(),data)if __name__=="__main__":myBarrier=multiprocessing.Barrier(3)mylist=[x for x in range(100)]processeslist=[]for data in mylist:pr=multiprocessing.Process(target=getdata,args(data,myBarrier))processeslist.append(pr)pr.start()for pr in processeslist:print('n')pr.join()

协程池

import gevent
import gevent.pool
import gevent.monkey
gevent.monkey.patch_all()#分布式冲突
def run_task(data):print(data)
if __name__=="__main__":mypool=gevent.pool.Pool(2)datalist=[x for x in range(10)]result=mypool.map(run_task,datalist)print(result)

使用异步进程池,且进程池中传递入的任务是方法,

import os
from multiprocessing import Pooldef run_process(fun):fun()
def one_process():print("执行")
if __name__ == '__main__':print('parent process %s.' % os.getpid())p = Pool() # 初始化进程池for i in range(5):p.apply_async(run_process, args=(one_process,)) # 追加任务 apply_async 是异步非阻塞的,就是不用等待当前进程执行完毕,随时根据系统调度来进行进程切换。p.close()p.join() # 等待所有结果执行完毕,会等待所有子进程执行完毕,调用join()之前必须先调用close()

Python进程池,线程池,协程池相关推荐

  1. python 进程,线程,协程篇

    python 进程,线程,协程篇 ssh 线程 进程 线程,进程区别 threading 模块,两种调用方式 python GIL全局解释器锁(Global Interpreter Lock) Joi ...

  2. Python 进程、线程、协程

    进程.线程.协程 一.线程 1. 进程和线程 线程:计算机中可以被cpu调度的最小单元(真正在工作). 进程:计算机资源分配的最小单元(进程为线程提供资源). #如容器,资源隔离使用的进程级别隔离.一 ...

  3. Python 进程、线程、协程傻傻分不清楚?详细总结(附代码)

    目录 1 什么是并发编程? 2 进程与多进程 3 线程与多线程 4 协程与多协程 5 总结 1 什么是并发编程? 并发编程是实现多任务协同处理,改善系统性能的方式.Python中实现并发编程主要依靠 ...

  4. Python—进程、线程、协程

    一.线程 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务 方法: ...

  5. Python进程、线程、协程详解

    进程与线程的历史 我们都知道计算机是由硬件和软件组成的.硬件中的CPU是计算机的核心,它承担计算机的所有任务. 操作系统是运行在硬件之上的软件,是计算机的管理者,它负责资源的管理和分配.任务的调度. ...

  6. python进程、线程、协程

    基本观点: 1.一个python进程一个GIL(全局锁),每个线程需要获取这个锁才能执行. 2.cpu密集型的程序,使用多进程. 3.IO密集型的程序,多线程可能会比多进程快. 4.多核cpu执行多进 ...

  7. python︱Python进程、线程、协程详解、运行性能、效率(tqdm)

    文章目录 多进程实践--multiprocessing . 延伸一:Caffe Python接口多进程提取特征 多线程案例--threading 1.普通的threading 4.线程锁与线程同步 5 ...

  8. 怎么更进一步学python_【百尺竿头,更进一步学Python】Python进阶课程——进程,线程和协程的区别...

    本文带来各类奇怪的IT百科知识. [百尺竿头,更进一步学Python]Python进阶课程--进程:线程和协程的区别 现在多进程多线程已经是老生常谈了:协程也在最近几年流行起来.今天我们本文主要介绍进 ...

  9. python提高——进程、线程、协程对比及代码实现

    目录 1多任务 1.1并发 1.2并行 2线程 2.1引入线程 2.2线程进行顺序 2.3线程封装 2.4多线程-共享全局变量 2.5资源竞争 2.6互斥锁 2.7死锁 3进程 3.1进程创建 3.2 ...

  10. python进程线程协程区别_进程和线程、协程的区别

    现在多进程多线程已经是老生常谈了,协程也在最近几年流行起来.python中有协程库gevent,py web框架tornado中也用了gevent封装好的协程.本文主要介绍进程.线程和协程三者之间的区 ...

最新文章

  1. 面试官比较看重简历中的哪些维度,有什么写简历的技巧、建议和总结?
  2. Java类的基本运行顺序
  3. linux终端进程bash,让Linux的进程不受终端影响
  4. Linux 释放缓存的方法
  5. Html、Css-----当有文字和图片的时候,需要文字和图片居中,怎么实现?不想文字换行怎么设置...
  6. Vue入门 ---- vuex
  7. 在DELL服务器上升级ESXI 5.5
  8. linux单用户模式single=1,Linux 单用户模式single mode
  9. [C#][Quartz]帮助类
  10. explain mysql_mysql explain详解
  11. 数字图像处理王慧琴课后答案_清华大学出版社-图书详情-《数字图像处理(第3版)》...
  12. 一篇所有研究生都该读的好文:阳光温热 科研静好
  13. leetcode 89
  14. WGCLOUD和ZABBIX有什么不一样
  15. 钡铼技术IO模块—专业独立式io模块
  16. 交通期刊JCR(2020)
  17. cufft1d c2c
  18. 计算机毕业设计Java网上书店管理系统(源码+系统+mysql数据库+Lw文档)
  19. 【无人机】【2015.03】用于自然地形测绘的无人机多角度立体视觉
  20. mysql like ‘%...%’ 慎用啊

热门文章

  1. ffpemg扩展 安装php_ThinkSwoole 教程(二)安装
  2. python中rand和randn_rand、randn、randi区别及用法
  3. python爬取抖音评论_怎样用Python3爬取抖音神曲
  4. CSS+HTML大白
  5. Verilog初级教程(7)Verilog模块例化以及悬空端口的处理
  6. 初识Tcl(一):Tcl 命令
  7. Node.js使用NodeMailer发送邮件
  8. SQL Server 2016新特性:列存储索引新特性
  9. 更安全的堡垒机登录方法
  10. 众里寻他千百度-- 轻量级持久化框架