Add files via upload
This commit is contained in:
@@ -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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user