Встречается на собеседованиях • сегодня

Для чего используется backpressure

Backpressure — это механизм управления потоком данных между производителем (producer) и потребителем (consumer), когда потребитель не успевает обрабатывать данные, генерируемые производителем. В Python он часто применяется в асинхронных и потоковых системах (например, с asyncio или генераторами).

Пример с генератором:

python
def producer():
    for i in range(10):
        yield i  # Пауза до следующего запроса

def consumer(gen):
for item in gen: # Запрашивает данные по одному
print(item) # Обработка с контролируемой скоростью

gen = producer()
consumer(gen)

text

В асинхронных системах backpressure реализуется через очереди (`asyncio.Queue`) с ограничением размера:
```python
import asyncio

async def producer(queue):
    for i in range(10):
        await queue.put(i)  # Блокируется, если очередь заполнена

async def consumer(queue):
    while True:
        item = await queue.get()
        print(item)
        queue.task_done()

queue = asyncio.Queue(maxsize=2)
asyncio.run(asyncio.gather(producer(queue), consumer(queue)))
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы