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

Работал ли с кооперативной многозадачностью в Python

Да, работал. В Python кооперативная многозадачность реализуется через генераторы (yield), asyncio и корутины.

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

python
def task1():
    for i in range(3):
        print("Task 1:", i)
        yield

def task2():
    for i in range(3):
        print("Task 2:", i)
        yield

tasks = [task1(), task2()]
while tasks:
for task in tasks[:]:
try:
next(task)
except StopIteration:
tasks.remove(task)

text

С `asyncio`:  
```python
import asyncio

async def task1():
    for i in range(3):
        print("Task 1:", i)
        await asyncio.sleep(0)

async def task2():
    for i in range(3):
        print("Task 2:", i)
        await asyncio.sleep(0)

asyncio.run(asyncio.gather(task1(), task2()))

Ключевое отличие — явная передача управления (yield/await), что требует дисциплины от разработчика.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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