import multiprocessing
WORKNUM = 3
class Worker(multiprocessing.Process):
def __init__(self, queue):
super(Worker, self).__init__()
self.q = queue
def run(self):
while True:
i = self.q.get()
if i == "end":
break
print ('process %s get %d' % (self.name, i))
class task:
def __init__(self):
self.qs = {}
def run_task(self):
for i in range(WORKNUM):
queue = multiprocessing.Queue(10)
w = Worker(queue)
w.start()
self.qs[i] = queue
i = 0
while True:
self.qs[i % WORKNUM].put(i)
i += 1
if i > 10:
for i in range(WORKNUM):
self.qs[i % WORKNUM].put("end")
break
def main():
t = task()
t.run_task()
if __name__ == "__main__":
main()