Caso real
Lo que usan las bibliotecas
VecDeque en Rust es un buffer circular que crece. La cola de la biblioteca estándar de C++ usa por defecto un deque que guarda bloques de tamaño fijo. Los anillos de red de los sistemas operativos (las colas de paquetes entre la tarjeta de red y el kernel) son buffers circulares de capacidad fija en memoria compartida.
El mismo principio sirve para cualquier productor y consumidor que se pasen datos por un anillo. Imagina uno de 256 posiciones: la tarjeta de red ha escrito 1000 paquetes en total y el kernel ha leído 800. ¿Cuántos esperan, y dónde cae el siguiente?