話不多說,python多程序要匯入包from multiprocessing import pool
具體使用方法如下
def func(i):
print('run task %s...' % (os.getpid()))
t = time.time()
# do some operations
print('task %s runs %0.2f seconds.' % (os.getpid(), (time.time() - t)))
return ans
def multi_sample():
print('parent process %s.' % os.getpid())
pool = pool(processes=10)
n_cpu = 10
results =
for i in range(n_cpu):
print('waiting for all subprocesses done...')
pool.close()
pool.join()
print('all subprocesses done.')
# 合併程序(非必要)
for result in results:
res = result.get() # get方法獲得程序返回值
# 對res進行處理
如果不需要返回值,則無需有合併程序結果這一步。
事情到這裡,似乎一切都很順利,在終端輸入top,則可以看到下面一番景象
但必須特別注意:
如果某個程序有錯誤並不會報錯,這樣會讓你誤以為一切正常,如何判斷程序是否都成功執行完呢?
如果哪個程序沒有返回,就要去檢查下**是不是**寫錯了。
python多程序的坑 Python多程序相關的坑
python的multiprocessing模組實現了多程序功能,但官方文件上只有一些比較簡單的用法,主要是使用函式作為process的target,而如何在class中使用多程序並沒有多講解。google出兩篇比較詳細的文章,建議從它們入門 下面記錄一下自己這週在python多程序上碰到的坑 建立...
mybatis LocalCache踩坑記錄
上週週三下午,準備去吃飯的時候,值班突然找過來說使用者操作時爆出訂單不存在的問題,因為之前做了分表連續很長一段時間都沒問題,而且當時找過來的都是一些因為產品或者qa操作不當找不到記錄的情況,就沒有在意這些,當時以為幾分鐘就能搞定,但是沒想到居然是線上日誌爆出的問題,經過驗證訂單確實不存在!心想完了,...
Python多程序相關的坑
python的multiprocessing模組實現了多程序功能,但官方文件上只有一些比較簡單的用法,主要是使用函式作為process的target,而如何在class中使用多程序並沒有多講解。google出兩篇比較詳細的文章,建議從它們入門 下面記錄一下自己這週在python多程序上碰到的坑 和t...