#!/usr/bin/env python3 import time def gen1(): nums = yield while True: time.sleep(2) nums = yield nums[0] + nums[1] g1 = gen1() g1.send(None) def gen2(): nums = yield while True: time.sleep(0.4) nums = yield nums[0] + nums[1] g2 = gen2() g2.send(None) for i in range(5): print('g1: ', g1.send((1, i))) print('g2: ', g2.send((1, i)))
Как я понимаю, каждый корутин представляет собой сопрограмму, которая выполняется независимо. Таким образом я планировал получать суммы вперемешку(потому что в первой корутине задержка составляет 2 сек, а во втором - 0.4)
Проблема в том, что консоль выводит результат синхронно:
g1: 1
g2: 1
g1: 2
g2: 2
g1: 3
g2: 3
g1: 4
g2: 4
g1: 5
g2: 5