34 lines
476 B
Python
34 lines
476 B
Python
import queue
|
|
import threading
|
|
|
|
num_workers = 4
|
|
|
|
q = queue.Queue()
|
|
|
|
def do_work(item):
|
|
print(item)
|
|
|
|
def worker():
|
|
while True:
|
|
item = q.get()
|
|
if item is None:
|
|
break
|
|
do_work(item)
|
|
q.task_done()
|
|
|
|
threads = []
|
|
for i in range(num_workers):
|
|
t = threading.Thread(target=worker)
|
|
t.start()
|
|
threads.append(t)
|
|
|
|
|
|
for i in range(100):
|
|
q.put(i)
|
|
|
|
for i in range(num_workers):
|
|
q.put(None)
|
|
|
|
for t in threads:
|
|
t.join()
|