python中的資源池

2022-07-07 06:03:14 字數 1891 閱讀 6737

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.初始資源的數目 資源池啟動時,一次建立的資源...