Concurrency Coordination Reports
Bounded Queue Coordination Report
Offer items into a bounded queue and report how many were accepted or dropped.
Bounded Queue Coordination Report
bounded_queue_coordination_report.py
import queue
offered =
buffer = queue.Queue(maxsize=3)
accepted = 0
for item in range(offered):
try:
buffer.put_nowait(item)
accepted += 1
except queue.Full:
pass
remaining = 3 - buffer.qsize()
status = "full" if remaining == 0 else "dropped" if accepted < offered else "tight" if remaining <= 1 else "open"
print("offered=" + str(offered) + " accepted=" + str(accepted) + " remaining=" + str(remaining) + " status=" + status)
import queue
offered =
buffer = queue.Queue(maxsize=3)
accepted = 0
for item in range(offered):
try:
buffer.put_nowait(item)
accepted += 1
except queue.Full:
pass
remaining = 3 - buffer.qsize()
status = "full" if remaining == 0 else "dropped" if accepted < offered else "tight" if remaining <= 1 else "open"
print("offered=" + str(offered) + " accepted=" + str(accepted) + " remaining=" + str(remaining) + " status=" + status)
import queue
offered =
buffer = queue.Queue(maxsize=3)
accepted = 0
for item in range(offered):
try:
buffer.put_nowait(item)
accepted += 1
except queue.Full:
pass
remaining = 3 - buffer.qsize()
status = "full" if remaining == 0 else "dropped" if accepted < offered else "tight" if remaining <= 1 else "open"
print("offered=" + str(offered) + " accepted=" + str(accepted) + " remaining=" + str(remaining) + " status=" + status)
bounded queue
A `queue.Queue` with a `maxsize` has fixed capacity, so `put_nowait` reports whether an item was buffered and the remaining room coordinates producers and consumers.