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 常量池 python中的物件池
python中,一切皆為物件 id方法的返回值就是物件的記憶體位址。is運算子,如果引用的是同乙個物件則返回true,x is y類似 id x id y 1.小整數物件池 5,256 這些小整數被定義在了乙個整數物件池裡,當引用小整數時會自動引用整數物件池裡的物件,所以這些小整數不會重複建立,當多...
小議記憶體池 資源池
比較簡單的一篇文章。本來是有些地方沒想明白,想分析一下。結果寫著寫著就明白了,才發現如此簡單。留之 簡單的定義 我對一些專業的名詞不怎麼熟悉,沒有很系統的學習過,所以先稍微解釋下我的一點概念上的認識 看見過很多類似的詞,比如 快取記憶體分配 記憶體物件池 物件池 連線池等等。我覺得乙個池已經帶有高速...
資源池架構
資源池 resources pool 資源的集合 1.資源池引入的目的 提高效能 2.資源池運作機制 由資源池管理器提供一定數目的目標資源,當有請求該資源時,資源池分配給乙個,然後給該資源標識為忙,標示為忙的資源不能再被分配使用,3.資源池常有的引數 1.初始資源的數目 資源池啟動時,一次建立的資源...