mediumSystem Design

What is a message queue and why use one?

272 views
01

Understand the problem

Explain message queues.

message-queue
02

Attempt it yourself

Sketch your approach before reading the solution — that's what interviews test.

Stuck? AI Nudge Available

Get a conceptual hint to guide your logic without spoiling the final implementation.

03

Study the solution

The solution is waiting

Give it an honest attempt first — then compare your thinking with the full walkthrough.

04

Read the code

Producer / consumer workers
Run Playground
import queue, threading, time

q = queue.Queue()

def worker(name):
    while True:
        job = q.get()
        if job is None:           # shutdown signal
            break
        print(name, "processing", job)
        time.sleep(0.05)          # simulate work
        q.task_done()

workers = [threading.Thread(target=worker, args=("w" + str(i),)) for i in range(2)]
for t in workers:
    t.start()

for i in range(6):                # producer enqueues, decoupled from consumers
    q.put("job-" + str(i))

q.join()                          # wait until all jobs processed
for _ in workers:
    q.put(None)
for t in workers:
    t.join()
print("done")
05

Join the discussion

Discussion (0)

Sign in to join the discussion.

No responses yet. Be the first to share what you think.