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

001_python多进程实例

时间:2018-10-04 09:26:56      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:循环   python   sync   def   coding   并发   相对   一个   grep   

一、工作中需要执行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
....................

  

 

001_python多进程实例

标签:循环   python   sync   def   coding   并发   相对   一个   grep   

原文地址:https://www.cnblogs.com/arun-python/p/9740929.html

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