python中的程序池

2021-09-03 00:08:26 字數 1884 閱讀 5859

python中,程序池內部會維護乙個程序序列。當需要時,程式會去程序池中獲取乙個程序。

如果程序池序列中沒有可供使用的程序,那麼程式就會等待,直到程序池中有可用程序為止。

terminate 立刻關閉程序池

join 主程序等待所有子程序執行完畢,必須在close或terminete之後

close 等待所有程序結束才關閉執行緒池

同步是指乙個程序在執行某個請求的時候,必須要到收到對方返回的資訊才繼續執行下去

非同步是指程序在執行某個請求時,不管其他的程序的狀態,這個程序就執行後續操作;

當有訊息返回時系統會通知程序進行處理,這樣可以提高執行的效率

例如:打**就是同步通訊,發資訊就是非同步通訊。

**如下:

from multiprocessing import pool

import time

def func(args):

time.sleep(1) #程式休眠1s

print("%s------>%s"%(args,time.ctime())) #列印引數及時間

if __name__=="__main__":

p1=pool(2) #設定開啟2個程序池

for i in range(10):

p1.close() #關閉程序池

time.sleep(2) #程式休眠2s

p1.terminate() #關閉程序池

p1.join() #阻塞程序池

print("ending") #列印結束語句

程式執行結果:

0------>thu jul 20 20:18:43 2017

1------>thu jul 20 20:18:43 2017

ending

可以看到,在程式執行過程中,關閉程序池,則程式會立即停止,不會再繼續執行後續語句。

**如下:

from multiprocessing import pool

import time

def func(args):

time.sleep(1) #休眠1s

print("%s------>%s"%(args,time.ctime())) #列印傳遞的引數及時間

if __name__=="__main__":

p1=pool(2) #定義2個程序池

for i in range(10): #定義迴圈10次

p1.close() #等待所有的任務都完成才關閉程序池

p1.join()

print("ending")

執行結果如下:

0------>thu jul 20 20:19:12 2017

1------>thu jul 20 20:19:12 2017

2------>thu jul 20 20:19:13 2017

3------>thu jul 20 20:19:13 2017

4------>thu jul 20 20:19:14 2017

5------>thu jul 20 20:19:14 2017

6------>thu jul 20 20:19:15 2017

7------>thu jul 20 20:19:15 2017

8------>thu jul 20 20:19:16 2017

9------>thu jul 20 20:19:16 2017

ending

python中的程序池

coding utf 8 import multiprocessing import time deffunc msg print msg msg time.sleep 3 print end if name main pool multiprocessing.pool processes 3 fo...

Python中的程序池

一喪 為了情人節和你出去,我有了好幾十萬自行車的使用權 我們先來說我們為什麼使用這個程序池。目的 可以節約大量的時間。既然這麼重要,那我們都應該使用什麼方法去呼叫方法呢?我們來看一下 pool是什麼?pool就是我們的程序池了,讓我們來看一下怎麼用這個方法 import multiprocessin...

python 中的程序池

from multiprocessing import pool import time,random def jincheng i print s開始 i time.sleep random.random 加時間是為了體現多程序的併發效果 print s結束 i if name main p po...