python多進程中使用pool,python進程pool

來源:互聯網
上載者:User

python多進程中使用pool,python進程pool

Python 多進程中使用pool,pool中指定每次運行幾個進程,當其中一個進程結束完畢後,會加入新的進程

 

#!/usr/bin/env python#coding: utf-8import multiprocessingimport os,time,randomdef Lee():    print "Run task Lee-%s" %(os.getpid()) #os.getpid()擷取當前的進程的ID    start=time.time()    time.sleep(random.random()*10) #random.random()隨機產生0-1之間的小數    end=time.time()    print 'Task Lee, runs %0.2f seconds.' %(end - start)def Marlon():    print "Run task Marlon-%s" %(os.getpid())    start=time.time()    time.sleep(random.random()*40)    end=time.time()    print 'Task Marlon runs %0.2f seconds.' %(end - start)def Allen():    print "Run task Allen-%s" %(os.getpid())    start=time.time()    time.sleep(random.random()*30)    end=time.time()    print 'Task Allen runs %0.2f seconds.' %(end - start)def Frank():    print "Run task Frank-%s" %(os.getpid())    start=time.time()    time.sleep(random.random()*20)    end=time.time()    print 'Task Frank runs %0.2f seconds.' %(end - start)        if __name__=='__main__':    function_list=  [Lee,Marlon,Allen,Frank]     print "parent process %s" %(os.getpid())    pool=multiprocessing.Pool(2)    for func in function_list:        pool.apply_async(func) #Pool執行函數,apply執行函數,當有一個進程執行完畢後,會添加一個新的進程到pool中    print 'Waiting for all subprocesses done...'    pool.close()    pool.join() #調用join之前,一定要先調用close() 函數,否則會出錯, close()執行後不會有新的進程加入到pool,join函數等待素有子進程結束    print 'All subprocesses done.'


 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.