zoukankan      html  css  js  c++  java
  • 进程池

    ======================================

    多进程

    优点:并行多个任务,提高运行效率

               空间独立,数据安全,创建方便

    缺点:进程创建销毁的过程中销毁较多的计算机资源

    =============================================

    在需要频繁的创建和删除较多进程的情况下,导致计算机资源消耗过多,由此引发出进程池技术

    进程池如何处理;

    1、创建进程池,在池内放入适量的进程(一般看cup内核数量)

    2、将事件加入进程池等待队列

    3、使用进程池中的进程不断处理事件

    4、所有事件处理后,回收关闭进程池

    from multiprocessing import Pool

    Pool()

    功能:创建进程池

    参数:processes  指定进程池中的进程数量

    返回:得到进程池对象

    pool.apply_async()         pool这里指的是进程池对象

    功能:异步方式将事件放入进程池执行

    参数: func:要执行的事件函数

        args:同Process中args 给函数传参

        kwds:同process中Kwargs给函数传参

    返回值:返回一个对象,该对象可以通过get()方法得到func函数的返回值

    pool.close()

    功能:关闭进程池,使其无法加入新的事件

    pool.join()

    功能:阻塞等待进程池退出(当所有事件处理完毕)

    pool.apply()

    用法和apply_async一样,只不过是事件是一件一件按顺序完成。(一般不使用)

    ===========================

    pool.map(func,iter)

    ===========================

    from multiprocessing import Pool
    from time import sleep
    import os
    
    def worker(msg):
        sleep(2)
        print(msg)
    
    #创建进程池,启动4个进程
    pool=Pool(processes=4)    
    
    #放入事件
    for i in range(10):
        msg="Hello %d"%i
        pool.apply_async(worker,(msg,))
    sleep(3)
    print('='*10)
    #关闭进程池,不能加入事件
    pool.close()    
    
    #阻塞等待回收
    pool.join()
    yangrui@ubuntu:~/num6$ python3 pool.py 
    Hello 0
    Hello 3
    Hello 1
    Hello 2
    ==========
    Hello 4
    Hello 6
    Hello 7
    Hello 5
    Hello 9
    Hello 8
    yangrui@ubuntu:~/num6$ python3 pool.py 
    Hello 0
    Hello 1
    Hello 2
    Hello 3
    ==========
    Hello 5
    Hello 4
    Hello 6
    Hello 7
    Hello 8
    Hello 9
    执行结果
  • 相关阅读:
    ASP代码审计学习笔记 -2.XSS跨站脚本
    ASP代码审计学习笔记-1.SQL注入
    基于时间延迟的Python验证脚本
    如何构造一个注入点
    动易CMS漏洞收集
    【渗透测试学习平台】 web for pentester -8.XML
    【渗透测试学习平台】 web for pentester -7.文件包含
    【渗透测试学习平台】 web for pentester -6.命令执行
    【渗透测试学习平台】 web for pentester -5.代码执行
    【渗透测试学习平台】 web for pentester -4.目录遍历
  • 原文地址:https://www.cnblogs.com/sike8/p/11131021.html
Copyright © 2011-2022 走看看