- from threading import Thread
- import multiprocessing as mp
- import time
- import random
- from queue import Queue
-
- inputQueue = mp.JoinableQueue()
- inputQueue2 = mp.Queue(10)
-
- class ProducerThread(Thread):
- def __init__(self,name='',custom_id,daemon=False):
- super(ProducerThread, self).__init__()
- self.name = "{}-{}".format(name,custom_id)
- self.setDaemon(daemon)
-
- global inputQueue
- def run(self):
- numbers = range(40)
- counter = 0
- while counter < 20:
- num = random.choice(numbers)
- inputQueue.put(num)
- print("\nPut",num)
- time.sleep(.08)
- counter+=1
-
-
- class ConsumerProcess1(Thread):
- def __init__(self,name,custom_id,daemon=False):
- super(ConsumerProcess1,self).__init__()
- self.name = "{}-{}".format(name,custom_id)
- self.daemon = daemon
-
- global inputQueue
- def run(self):
- while (not inputQueue.empty()):
- num = inputQueue.get()
- inputQueue.task_done()
- print("\nGot", num)
- time.sleep(.1)
-
-
- if __name__ == "__main__":
- print("this is example 2")
- time.sleep(2)
- a=ProducerThread(name = 'producer thread',custom_id=1,daemon=False)
- b=ConsumerProcess1(name = 'consumer process',custom_id=1,daemon=True)
-
- a.start()
- b.start()
-
- print(a.ident,a.name,"\n")
- print(b.ident,b.name,"\n")
|