我在使用python多處理庫時遇到了一個奇怪的問題。Python多處理 - 當一個進程完成時如何釋放內存?
我的代碼如下:我爲每個「符號,日期」元組產生一個進程。之後我將結果結合起來。
我期望當一個進程完成了「符號,日期」元組的計算後,它應該釋放它的內存?顯然情況並非如此。我看到數十個進程(儘管我將進程池的大小設置爲7)在機器中暫停1。它們不消耗CPU,並且不釋放內存。
如何讓進程在完成其計算後釋放其內存?
謝謝!
¹由「暫停」我的意思是他們在ps命令狀態顯示爲「S +」
def do_one_symbol(symbol, all_date_strings):
pool = Pool(processes=7)
results = [];
for date in all_date_strings:
res = pool.apply_async(work, [symbol, date])
results.append(res);
gg = mm = ss = 0;
for res in results:
g, m, s = res.get()
gg += g;
mm += m;
ss += s;
這是我的腳本的根本原因引起的點的重新啓動由於> 4GB內存的90%被消耗:)謝謝! –