打印num b的一些python多处理问题

2024-09-26 22:13:45 发布

您现在位置:Python中文网/ 问答频道 /正文

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()

代码如上所示。我的问题是如何控制冗余进程,因为当我把可分为整数的项目编号放入时,上面的代码将产生错误。我如何在不产生错误的同时完成打印编号的任务


Tags: 代码inimportfordataifdef错误
1条回答
网友
1楼 · 发布于 2024-09-26 22:13:45

修复此问题的代码:

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"

相关问题 更多 >

    热门问题