簡體   English   中英

如何在python多線程環境中限制函數執行時間?

[英]How to limit function execution time in python multithreading environment?

我有一個運行大量並發線程(至少200個)的腳本。 每個線程都會執行一些非常復雜的評估,這可能會花費大量時間。 評估方法是用C實現的,我無法更改。 我想限制每個線程的方法執行時間。 請指教。

據我對您的問題的了解,使用多處理而不是多線程可能是一個很好的案例。 多處理將允許您利用系統上的所有可用資源-如果您不小心,則可以利用其中的一些資源。

線程實際上並不會並行運行,因此除非您正在大量等待I / O或類似的操作,否則從單獨的進程中調用它會更有意義。 您可以使用Python多處理庫從Python腳本中調用它,也可以使用用C編寫的包裝器並使用某種形式的進程間通信 第二種選擇將避免僅運行一些C代碼而啟動另一個Python實例的開銷。

您可以調用time.sleep(或執行其他任務,並檢查系統時鍾是否經過了時間),然后在所需的時間間隔后檢查結果,從而允許在使用結果時所有尚未完成的進程繼續運行。 或者,如果您當時不在乎,則可以發送信號終止該過程。

暫無
暫無

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

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