Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import multiprocessing as mp
- import time
- class testClass(object):
- def __init__(self,name):
- self.name=name
- def doSomething(self):
- print("Object %s reporting!"%(self.name))
- #function receives objects
- def receiverFunction(receive_end):
- while True:
- #receive object from the pipe
- try:
- obj=receive_end.recv()
- except EOFError as err:
- print("nothing left in the queue, aborting receiver thread")
- break
- #use the received object
- obj.doSomething()
- #function generates objects
- def producerFunction(send_end):
- start=time.time()
- i=0
- #produce data every 50ms for 5s
- while time.time()-start<1:
- i+=1
- send_end.send(testClass("Object%d"%(i)))
- time.sleep(50e-3)
- print("Closing the send_end in producer process...")
- send_end.close()
- if __name__=="__main__":
- (receive_end,send_end)=mp.Pipe()
- p_recv=mp.Process(target=receiverFunction,args=[receive_end])
- p_send=mp.Process(target=producerFunction,args=[send_end])
- p_recv.start()
- p_send.start()
- p_send.join()
- send_end.close()
- print("Closing send_end in parent process")
- p_recv.join()
- Object Object1 reporting!
- Object Object2 reporting!
- Object Object3 reporting!
- Object Object4 reporting!
- Object Object5 reporting!
- Object Object6 reporting!
- Object Object7 reporting!
- Object Object8 reporting!
- Object Object9 reporting!
- Object Object10 reporting!
- Object Object11 reporting!
- Object Object12 reporting!
- Object Object13 reporting!
- Object Object14 reporting!
- Object Object15 reporting!
- Object Object16 reporting!
- Object Object17 reporting!
- Object Object18 reporting!
- Object Object19 reporting!
- Object Object20 reporting!
- Closing the send_end in producer process...
- Closing send_end in parent process
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement