zoukankan      html  css  js  c++  java
  • Python_多进程_pool进程池

    多进程典型案例:

    1、将子进程的进程名作为列表中的元素,在父进程中遍历(异步)执行

    #coding: utf-8
    from multiprocessing import Pool
    import os, time, random
    #将函数打包成列表中的元素,再(异步)遍历执行
    
    def zhangsan():
        print ("
    Run task 张三-%s" %(os.getpid())) #os.getpid()获取当前的进程的ID
        start = time.time()
        time.sleep(random.random() * 10) #random.random()随机生成0-1之间的小数
        end = time.time()
        print ('Task 张三 runs %0.2f seconds.' %(end - start))
    
    def lisi():
        print ("
    Run task 李四-%s" %(os.getpid()))
        start = time.time()
        time.sleep(random.random() * 40)
        end=time.time()
        print ('Task 李四 runs %0.2f seconds.' %(end - start))
    
    def wangwu():
        print ("
    Run task 王五-%s" %(os.getpid()))
        start = time.time()
        time.sleep(random.random() * 30)
        end = time.time()
        print ('Task 王五 runs %0.2f seconds.' %(end - start))
    
    def zhaoliu():
        print ("
    Run task 赵六-%s" %(os.getpid()))
        start = time.time()
        time.sleep(random.random() * 20)
        end = time.time()
        print ('Task 赵六 runs %0.2f seconds.' %(end - start))
            
    if __name__=='__main__':
        function_list=  [zhangsan, lisi, wangwu, zhaoliu] 
        print ("parent process %s" %(os.getpid()))
    
        pool=Pool(4)
        for func in function_list:
            pool.apply_async(func)     #Pool执行函数,apply执行函数,当有一个进程执行完毕后,会添加一个新的进程到pool中
    
        print ('等待所有子进程执行……')
        pool.close()
        '''
        调用join之前,一定要先调用close() 函数,否则会出错,
        close()执行后不会有新的进程加入到pool,join函数等待素有子进程结束
        '''
        pool.join()    
        print ('子进程执行完毕')
  • 相关阅读:
    关于在配置mysql的时候,总是在最后一步startservice的时候未响应出错
    html标签默认属性值之margin;padding值
    一个误区(关于javascript的字符串拼接)
    简单实用的下拉级联菜单
    js淡入淡出效果框架
    js多物体运动框架
    26 个 jQuery使用技巧(转载)
    js自定义滚动条完美兼容ff,IE
    CSS中单位px和em的区别解析
    js仿flash图片展示控件
  • 原文地址:https://www.cnblogs.com/hellangels333/p/8178568.html
Copyright © 2011-2022 走看看