簡體   English   中英

如何在PyQt4進程中使用多核python?

[英]How to use multicore python with PyQt4 process?

我正在pyqt4中編寫一個必須讀取並解析許多xml文件的應用程序。 完成單線程處理需要花費一些時間來完成所有解析,並制作與該傳入xml相對應的數千個python對象。 我已經分析了代碼,據我所知它是計算的,而不是I / O的。

我想使用工人農場模型(python中的?Process.Pool)將應用程序轉換為多核模型以分散負載。

但是,我也希望能夠通過信號通知工作人員更新gui的進度。

從我到目前為止所讀的內容看來,QThread不具有多核功能(因為它在一個核上循環運行),但是我需要QThread來執行Signal,因此本質上我無法做到這一點。

我也許可以安排不需要從工作人員發出信號,而只是從農民那里發出信號,這可能意味着我可以繼續進行下去,但是然后我想知道:我可以將python對象列表從一個Process返回到另一個Process嗎?

  • 產生一個QThread。
  • QThread可以將任務分配到多處理池中。 您可以使用具有回調參數的pool.apply_async()
  • callback參數允許您指定一個在目標函數完成時調用的函數。
  • 回調在QThread中運行,並以其唯一的參數發送目標函數的返回值。
  • 每次回調函數運行時,您都可以更新GUI以指示進度。

暫無
暫無

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

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