IT-словарь › Программирование › Кольцевой буфер

Кольцевой буфер

Программирование Svenska → Обновлено: 2026-11-02

Очередь в блоке памяти фиксированного размера, где указатели чтения и записи гоняются друг за другом по кругу.

Буфер — это просто массив; дойдя до конца, указатель возвращается в начало. Ни выделения памяти, ни перемещения данных, вход и выход за константное время. Поэтому это выбор по умолчанию в прошивках: прерывание UART кладёт символы, а главный цикл забирает их в своём темпе.

При ровно одном производителе и одном потребителе блокировки не нужны: прерывание трогает только индекс записи, цикл — только индекс чтения. Размер обычно степень двойки, чтобы переход по кругу был дешёвой битовой маской, а не делением. Остаётся вечная неоднозначность «полон или пуст» — в обоих случаях указатели равны, — которую решают, жертвуя одной ячейкой или храня отдельный счётчик. Та же идея лежит в сетевых драйверах Linux, аудио-API и io_uring.

← Назад к словарю