import multiprocessing
import time
from multiprocessing import Manager
def test(q, lock,return_list):
# time.sleep(10)
print(‘start’)
while True:
time.sleep(1)
lock.acquire()
if not q.empty():
try:
page = q.get(True)
lock.release()
print(page)
lock.acquire()
return_list.append(page)
lock.release()
# n += 1
except Exception as e:
print(e)
# logger.error(e)
continue
else:
lock.release()
print('end')
break
def run():
q = Manager().Queue()
lock = Manager().Lock()
return_list = Manager().list()
thlist = []
for i in range(1, 100):
q.put(i)
for i in range(5):
th = multiprocessing.Process(target=test, args=(q, lock,return_list))
th.start()
thlist.append(th)
for i in thlist:
i.join()
print(return_list)
if name == ‘main’:
run()



