码迷,mamicode.com
首页 > 编程语言 > 详细

进程池线程池

时间:2020-03-01 10:34:24      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:lex   name   ESS   线程池   使用   提高   pool   adp   rand   

进程池,线程池

什么是池

# 要在程序开始的时候,还没提交任务先创建固定数量的进程或线程 放在一个池子里,这就是池

为什么要用池?

# 如果先开好进程/线程,那么有任务之后就可以直接使用这个池中的数据了
# 并且开好的线程或者进程会一直存在在池中 处理完毕进程并不关闭,可以被多个任务反复利用
     # 这样极大的减少了开启\关闭\调度线程/进程的时间开销
# 池中的线程/进程个数控制了操作系统需要调度的任务个数,控制池中的单位
        # 有利于提高操作系统的效率,减轻操作系统的负担

开启一个池

from concurrent.futures import ProcessPoolExecutor#引用的模块
from concurrent.futures import ThreadPoolExecutor
import time
import os
import random

def task(name):
    print(name)
    print(f'{os.getpid()} 准备接客')
    time.sleep(random.randint(1,3))

if __name__ == '__main__':

    p = ThreadPoolExecutor()  # 线程默认cup数*5 ,进程cup数
    for i in range(23):
        p.submit(task,1)  # 给进程池放任务,传参

进程池线程池

标签:lex   name   ESS   线程池   使用   提高   pool   adp   rand   

原文地址:https://www.cnblogs.com/saoqiang/p/12388494.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!