簡體   English   中英

一些python多處理問題以打印數字

[英]some python multiprocessing issue for printing num ber

import multiprocessing

def printt(q):    
    if q.empty():      
        pass
    else:
        data = q.get()
        print data 

if __name__ == "__main__":
    q = multiprocessing.JoinableQueue()
    for i in range(5):
        q.put()
    while 1:
        for i in range(3):
            process = multiprocessing.Process(target=printt, arg=(q,))
            process.start()
            process.join()
        q.join()

代碼如上所示。 我的問題是,當我將可分為整數的項目數放入上面時,如何控制冗余過程,cos,上面的代碼將引發錯誤。我如何在不提高打印數的同時完成我的任務錯誤。

解決此問題的代碼:

import multiprocessing

def printt(q):
    while 1:
        if q.empty():
            break
        else:
            data = q.get()
            q.task_done()
            print data


if __name__ == "__main__":
    q = multiprocessing.JoinableQueue()
    for i in range(5):
        q.put(i)
    for i in range(3):
        process = multiprocessing.Process(target=printt, args=(q,))
        process.start()
    q.join()
    print "over"

暫無
暫無

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

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