Sobes.tech
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()

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