0
我是python的新手,我想用pool.apply_async()
來校準我的代碼。 pool.apply_async()
的參數讓我困惑。使用關於pool.apply_async
這裏是我的代碼:
def detect(i, pdf):
savefig2pdf.save(event['value'][0][5000:6000],
event['value'][1][5000:6000],
event['value'][2][5000:6000],
event['start point index']+5000 ,
eventlist[i],
p_result,
s_arrival,
pdf)"
if __name__ == '__main__':
pdf = PdfPages('cut_figure.pdf')
pool = multiprocessing.Pool(processes=10) # set the processes max number 10
for i in range(0, len(eventlist)):
pool.apply_async(detect, (i, pdf,))
pool.close()
pool.join()
pdf.close()
如果我只有通過i
,它的工作原理。我怎樣才能將PDF傳遞給流程?我需要pdf才能寫出,直到完成所有過程。 感謝您的幫助。
你看到的確切錯誤信息是什麼?你能顯示「檢測」的前幾行嗎? – mbatchkarov
實際上沒有錯誤消息...如果我只通過我檢測,它工作正常。如果我通過PDF和我,代碼不處理檢測功能 – rhy
我認爲這發生在多個進程共享「pdf」對象時。或者你的'detect'函數可能會拋出一個異常。 – Himal