Skip to content

Latest commit

 

History

History

RingBuffer

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

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

Задание: На языке Python 2.7 реализовать минимум по 2 класса реализовывающих циклический буфер FIFO. Объяснить плюсы и минусы каждой реализации.

Решение: Кольцевой буфер, использующий collections.deque в качестве структуры данных и кольцевой буфер, использующий list.

Плюсы:

  • простая реализация
  • операции добавления и удаления из очереди $O(1)$
  • операции добавления и удаления из очереди потоко-безопасны, так как являются атомарными.

Минусы:

  • на практике блокировку многопоточности все же приходится включать для проверки переполненности массива

Тесты находятся в файле RingBuffer/tests.py

python2 -m unittest tests

Чтобы запустить тесты выполните:

python run.py