簡體   English   中英

Python-類方法多進程安全嗎?

[英]Python - Are class methods multiprocess safe?

我有一個類,它遍歷一些數據文件,對其進行處理,然后將新數據寫回。 每個文件的分析完全獨立於其他文件。 該類在其屬性中包含分析所需的信息,但分析不需要更改該類的任何屬性。 因此,我可以使對一個數據文件的分析成為類的一種方法。 由於每個數據文件都是獨立的,因此分析原則上可以並行進行。 順便說一句,我正在考慮使我的課程變得可迭代。

我可以使用多處理模塊生成作為類方法的進程嗎? 我需要使用多重處理,因為我使用的第三方代碼的內存泄漏確實非常嚴重(大約100個數據文件后,所有24Gb內存都已填滿)。

如果沒有,您將如何進行? 您是否只使用類調用的普通函數(將我需要的所有信息作為參數傳遞)而不是方法? 如何在多處理中將參數傳遞給函數? 它會復制很深嗎?

是的,如果您不更新需要在實例之間共享的類本身的數據,則在這種情況下,多處理是您的工具。

您沒有提及使用任何外部資源的過程,因此它應該是fork()安全的。 Fork復制內存和文件描述符,在父級和子級中程序狀態相同。 除非您使用無法分叉的窗戶,否則請繼續。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM