Skip to content

Thread-safe, double-ended queue with queue.Queue()-like functionality. Supports blocking operations, task tracking, join() and task_done() methods.

License

Notifications You must be signed in to change notification settings

PATRUSOV/python-thread-safe-deque

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tsdeque — Thread-Safe Deque with Task Tracking ⚙️


English

tsdeque is a thread-safe, double-ended queue implementation with built-in task tracking and threshold-based event notifications. Designed for multi-threaded environments, it ensures safe concurrent access and precise control over queue size and task completion status.

Features

  • Thread-safe double-ended queue (deque) operations
  • Support for max size limitation with blocking put operations
  • Task counting with task_done() and join() methods, similar to queue.Queue
  • Threshold events triggered on hitting min/max counts
  • Customizable blocking timeouts on put/get operations
  • Designed with performance and correctness in mind

Installation

pip install tsdeque

Usage example

from tsdeque import ThreadSafeDeque

deque = ThreadSafeDeque(maxsize=5)
deque.put("item")
item = deque.get()
deque.task_done()
deque.join()

Testing 🧪

Run tests with:

python -m pytest

Русский

tsdeque — потокобезопасная двухсторонняя очередь с учетом количества задач и триггерами событий на пороговых значениях. Подходит для многопоточного программирования, гарантирует корректный доступ и управление размером очереди и состоянием задач.

Возможности

  • Потокобезопасные операции с двухсторонней очередью (deque)
  • Поддержка ограничения по максимальному размеру с блокирующими операциями put
  • Подсчет задач с методами task_done() и join(), аналогично queue.Queue
  • События срабатывают при достижении минимальных и максимальных порогов
  • Настраиваемые таймауты блокирующих операций
  • Оптимизирован для производительности и надежности

Установка

pip install tsdeque

Пример использования

from tsdeque import ThreadSafeDeque

deque = ThreadSafeDeque(maxsize=5)
deque.put("item")
item = deque.get()
deque.task_done()
deque.join()

Тестирование 🧪

Запуск тестов:

python -m pytest

About

Thread-safe, double-ended queue with queue.Queue()-like functionality. Supports blocking operations, task tracking, join() and task_done() methods.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages