Back to questions
Junior — Middle
50
Могли бы вы привести пример ситуации, в которой использование очереди оправдано на практике?
Answer from AI
sobes.tech AI
Очередь — это структура данных, работающая по принципу FIFO (первым пришёл — первым вышел). Практический пример использования очереди:
Обработка задач в многопоточном приложении:
Представим, что у вас есть сервер, который получает запросы от пользователей. Чтобы не блокировать основной поток, запросы помещаются в очередь задач. Отдельные рабочие потоки берут задачи из очереди и обрабатывают их по очереди.
Пример на Python с использованием queue.Queue:
import queue
import threading
import time
# Создаем очередь
task_queue = queue.Queue()
# Функция обработчика задач
def worker():
while True:
task = task_queue.get()
if task is None: # сигнал для завершения
break
print(f"Обрабатываем задачу: {task}")
time.sleep(1) # имитация работы
task_queue.task_done()
# Запускаем рабочий поток
thread = threading.Thread(target=worker)
thread.start()
# Добавляем задачи
for i in range(5):
task_queue.put(f"Задача {i}")
# Ждем обработки всех задач
task_queue.join()
# Останавливаем поток
task_queue.put(None)
thread.join()
Таким образом, очередь помогает организовать упорядоченную и безопасную передачу задач между потоками.