【发布时间】:2023-03-21 08:16:01
【问题描述】:
所以我正在尝试学习多处理模块并编写了一个代码(如下),其中生成了 4 个进程 并分配了 8 个作业(在 处理器中函数)并且每个作业只包含一个睡眠函数(在示例作业函数中)。现在我已经在多线程模块中编写了类似的代码有工作很好,但这里没有输出任何东西。请帮助
from multiprocessing import Process, Lock
import multiprocessing
import time
print_lock = Lock()
def exampleJob(worker): # function simulating some computation
time.sleep(.5)
print_lock.acquire()
print(multiprocessing.current_process.pid,worker)
print_lock.release()
def processor(): #function where process pick up the job
while True:
worker = q.get()
exampleJob(worker)
q.task_done()
q = multiprocessing.JoinableQueue()
process = []
for x in range(4):
p = multiprocessing.Process(target=processor)
process.append(p)
for i in range(0,len(process)):
process[i].start
start = time.time()
for worker in range(8):
q.put(worker)
q.join()
print('Entire job took:',time.time() - start)
【问题讨论】:
标签: python python-multiprocessing python-multithreading