Python进程池,线程池,协程池
线程池
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进程池,线程池,协程池相关推荐
- python 进程,线程,协程篇
python 进程,线程,协程篇 ssh 线程 进程 线程,进程区别 threading 模块,两种调用方式 python GIL全局解释器锁(Global Interpreter Lock) Joi ...
- Python 进程、线程、协程
进程.线程.协程 一.线程 1. 进程和线程 线程:计算机中可以被cpu调度的最小单元(真正在工作). 进程:计算机资源分配的最小单元(进程为线程提供资源). #如容器,资源隔离使用的进程级别隔离.一 ...
- Python 进程、线程、协程傻傻分不清楚?详细总结(附代码)
目录 1 什么是并发编程? 2 进程与多进程 3 线程与多线程 4 协程与多协程 5 总结 1 什么是并发编程? 并发编程是实现多任务协同处理,改善系统性能的方式.Python中实现并发编程主要依靠 ...
- Python—进程、线程、协程
一.线程 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务 方法: ...
- Python进程、线程、协程详解
进程与线程的历史 我们都知道计算机是由硬件和软件组成的.硬件中的CPU是计算机的核心,它承担计算机的所有任务. 操作系统是运行在硬件之上的软件,是计算机的管理者,它负责资源的管理和分配.任务的调度. ...
- python进程、线程、协程
基本观点: 1.一个python进程一个GIL(全局锁),每个线程需要获取这个锁才能执行. 2.cpu密集型的程序,使用多进程. 3.IO密集型的程序,多线程可能会比多进程快. 4.多核cpu执行多进 ...
- python︱Python进程、线程、协程详解、运行性能、效率(tqdm)
文章目录 多进程实践--multiprocessing . 延伸一:Caffe Python接口多进程提取特征 多线程案例--threading 1.普通的threading 4.线程锁与线程同步 5 ...
- 怎么更进一步学python_【百尺竿头,更进一步学Python】Python进阶课程——进程,线程和协程的区别...
本文带来各类奇怪的IT百科知识. [百尺竿头,更进一步学Python]Python进阶课程--进程:线程和协程的区别 现在多进程多线程已经是老生常谈了:协程也在最近几年流行起来.今天我们本文主要介绍进 ...
- 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 ...
- python进程线程协程区别_进程和线程、协程的区别
现在多进程多线程已经是老生常谈了,协程也在最近几年流行起来.python中有协程库gevent,py web框架tornado中也用了gevent封装好的协程.本文主要介绍进程.线程和协程三者之间的区 ...
最新文章
- 面试官比较看重简历中的哪些维度,有什么写简历的技巧、建议和总结?
- Java类的基本运行顺序
- linux终端进程bash,让Linux的进程不受终端影响
- Linux 释放缓存的方法
- Html、Css-----当有文字和图片的时候,需要文字和图片居中,怎么实现?不想文字换行怎么设置...
- Vue入门 ---- vuex
- 在DELL服务器上升级ESXI 5.5
- linux单用户模式single=1,Linux 单用户模式single mode
- [C#][Quartz]帮助类
- explain mysql_mysql explain详解
- 数字图像处理王慧琴课后答案_清华大学出版社-图书详情-《数字图像处理(第3版)》...
- 一篇所有研究生都该读的好文:阳光温热 科研静好
- leetcode 89
- WGCLOUD和ZABBIX有什么不一样
- 钡铼技术IO模块—专业独立式io模块
- 交通期刊JCR(2020)
- cufft1d c2c
- 计算机毕业设计Java网上书店管理系统(源码+系统+mysql数据库+Lw文档)
- 【无人机】【2015.03】用于自然地形测绘的无人机多角度立体视觉
- mysql like ‘%...%’ 慎用啊