threading/Queue
code: python
import queue
import threading
import time
que = queue.Queue()
def producer():
for i in range(5):
print(f"producer : {i} is added in queue")
que.put(i)
time.sleep(1)
def consumer():
while True:
data = que.get()
if data is None:
break
print(f"consumer : {data} is received from queue")
time.sleep(2)
producer_thread = threading.Thread(target=producer)
consumer_thread = threading.Thread(target=consumer)
producer_thread.start()
consumer_thread.start()
producer_thread.join()
que.put(None)
consumer_thread.join()
print("All process is done")
# producer : 0 is added in queue
# consumer : 0 is received from queue
# producer : 1 is added in queue
# consumer : 1 is received from queue
# producer : 2 is added in queue
# producer : 3 is added in queue
# consumer : 2 is received from queue
# producer : 4 is added in queue
# consumer : 3 is received from queue
# consumer : 4 is received from queue
# All process is done