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
    ....................
    

      

  • 相关阅读:
    Tair分布式key/value存储
    Ehcache详细解读
    专访阿里中间件高级专家沈询
    boost之词法解析器spirit
    快速部署Python应用:Nginx+uWSGI配置详解
    CMake如何执行shell命令
    show engine innodb status 详解
    HTTP Request header
    json python api
    mysql 索引对于select速度提升作用实验
  • 原文地址:https://www.cnblogs.com/arun-python/p/9740929.html
Copyright © 2011-2022 走看看