multiprocessing.Queue works across processes. queue.Queue works within a single thread/process.
1# multiprocessing.Queue — inter-process communication2from multiprocessing import Process, Queue34def producer(q):5 for i in range(5):6 q.put(i ** 2)7 q.put(None) # Sentinel89def consumer(q):10 while True:11 item = q.get() # Blocks until item available12 if item is None:13 break14 print(f"Got: {item}")1516q = Queue()17p1 = Process(target=producer, args=(q,))18p2 = Process(target=consumer, args=(q,))19p1.start()20p2.start()21p1.join()22p2.join()2324# queue.Queue — thread-safe within one process25import queue2627q = queue.Queue()28q.put("item") # Thread-safe put29item = q.get() # Thread-safe get
Key differences:
multiprocessing.Queue for process communication.queue.Queue for thread communication.