![](/img/trans.png)
[英]python multiprocessing - sending child process logging to GUI running in parent
[英]multiprocessing - child process constantly sending back results and keeps running
是否有可能讓幾個子進程運行一些計算,然后將結果發送到主進程(例如更新 PyQt ui),但進程仍在運行,一段時間后它們發回數據並再次更新 ui? 使用 multiprocessing.queue,似乎只有在進程終止后才能將數據發回。 所以我想知道這種情況是否可能。
我不知道你的意思是“使用 multiprocessing.queue,似乎數據只能在進程終止后發回”。 這正是 Multiprocessing.Queue 設計用於的用例。
PyMOTW 是一整套 Python 模塊(包括 Multiprocessing)的絕佳資源。 在這里查看: https : //pymotw.com/2/multiprocessing/communication.html
如何使用多處理和循環將正在進行的消息從子級發送到父級的簡單示例:
import multiprocessing
def child_process(q):
for i in range(10):
q.put(i)
q.put("done") # tell the parent process we've finished
def parent_process():
q = multiprocessing.Queue()
child = multiprocessing.Process(target=child_process, args=(q,))
child.start()
while True:
value = q.get()
if value == "done": # no more values from child process
break
print value
# do other stuff, child will continue to run in separate process
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.