Add files via upload

This commit is contained in:
Lerking
2018-05-17 13:47:17 +02:00
committed by GitHub
parent 147bdc8a65
commit 32828d3a65

View File

@@ -0,0 +1,58 @@
import threading
import multiprocessing
import time
import sys
def network_worker(tq, wq):
ticker_queue = tq
work_queue = wq
while ticker_queue.empty() is not True:
ticker = tq.get()
print(threading.currentThread().getName(),"recieved ",ticker)
work_queue.put(ticker-1000)
time.sleep(0.02)
#ticker_queue.task_done()
work_queue.put(None)
return
def worker(wq):
work_queue = wq
while work_queue.get() is not None:
task = work_queue.get()
print(multiprocessing.current_process(),"recieved",task)
#work_queue.task_done()
return
ticker_queue = multiprocessing.JoinableQueue()
work_queue = multiprocessing.JoinableQueue()
tickers = range(1000)
processes = []
for i in tickers:
ticker_queue.put(i)
for i in range(20):
t = threading.Thread(target=network_worker, args = (ticker_queue, work_queue))
t.deamon = True
print("Starting: ",t.name)
t.start()
for i in range(4):
p = multiprocessing.Process(target = worker, args = (work_queue, ))
#p.deamon = True
print("Starting: ",p.name)
p.start()
processes.append(p)
if work_queue.empty() == True:
for p in processes:
p.terminate()
p.join()
print("Resulting work:", work_queue)