zoukankan      html  css  js  c++  java
  • 001_python多进程实例

    一、工作中需要执行zk数据对比,需要按照机器进行并发,举例以下的例子

    # coding:utf8
    # !/usr/bin/python
    import time
    from multiprocessing import Pool
    
    def test(i):
        '''
        执行这个程序的时候ps -ef|grep xxx.py可以看到启动了11个进程(1个父进程和10个子进程),这里的sleep(3)秒,会每3秒同时输出10个数字
        :param i:
        :return:
        '''
        print i
        time.sleep(3)
    
    if __name__ == "__main__":
        pool = Pool(processes=10)
        for i in xrange(500):
            '''
            For循环中执行步骤:
            (1)循环遍历,将500个子进程添加到进程池(相对父进程会阻塞)
            (2)每次执行10个子进程,等一个子进程执行完后,立马启动新的子进程。(相对父进程不阻塞)
    
            apply_async为异步进程池写法。
            异步指的是启动子进程的过程,与父进程本身的执行(print)是异步的,而For循环中往进程池添加子进程的过程,与父进程本身的执行却是同步的。
            '''
            pool.apply_async(test, args=(i,))  # 维持执行的进程总数为10,当一个进程执行完后启动一个新进程.
        print "================="
        pool.close()
        pool.join()
    

    输出=>可以看到会10个一批的输出

    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    =================
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    ....................
    

      

  • 相关阅读:
    二分图最大匹配的König定理及其证明
    HDOJ 2389 Rain on your Parade
    HDOJ 1083 Courses
    HDOJ 2063 过山车
    POJ 1469 COURSES
    UESTC 1817 Complete Building the Houses
    POJ 3464 ACM Computer Factory
    POJ 1459 Power Network
    HDOJ 1532 Drainage Ditches
    HDU 1017 A Mathematical Curiosity
  • 原文地址:https://www.cnblogs.com/arun-python/p/9740929.html
Copyright © 2011-2022 走看看