Книга: Learning Concurrency in Python
Назад: Coroutines
Дальше: Output

Chaining coroutines

In certain situations, you may wish to chain the calling of your coroutines together in order to achieve maximum performance within your Python systems.

The official documentation again has an excellent code sample that demonstrates this concept of chaining very well. Within this code, we have two distinct coroutines denoted by async def. The compute coroutine returns the summation of x + y after having performed a blocking sleep for 1 second.

Let's assume, however, that we want to rely on the result of a second coroutine within our first coroutine as follows:

import asyncio

async def compute(x, y):
print("Compute %s + %s ..." % (x, y))
await asyncio.sleep(1.0)
return x + y

async def print_sum(x, y):
result = compute(x, y)
print("%s + %s = %s" % (x, y, result))

loop = asyncio.get_event_loop()
loop.run_until_complete(print_sum(1, 2))
loop.close()

Upon execution of the preceding script, you should see that the following is outputted:

$ python3.6 06_chainCoroutine.py
1 + 2 = <coroutine object compute at 0x1031fc0f8>
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/events.py:126: RuntimeWarning: coroutine 'compute' was never awaited
self._callback(*self._args)

This essentially states that the compute function within our print_sum() method call was never awaited and the program tried to carry on as if it had received the result.

In order to overcome this particular issue, we need to utilize the await keyword. This await keyword blocks the event loop from proceeding any further until the called coroutine returns its result. The main drawback of this, however, is that, in this particular example, we lose the benefits of asynchronicity and we are back to standard synchronous execution. It's up to you to determine where the use of await is necessary as it does give you very quick and easy deterministic execution but you take hits on performance.

The print_sum coroutine instantiates a result variable that is equal to whatever the compute coroutine returns:

import asyncio

async def compute(x, y):
print("Compute %s + %s ..." % (x, y))
await asyncio.sleep(1.0)
return x + y

async def print_sum(x, y):
result = await compute(x, y)
print("%s + %s = %s" % (x, y, result))

loop = asyncio.get_event_loop()
loop.run_until_complete(print_sum(1, 2))
loop.close()

If we look at the sequence diagram that comes from the official documentation for this program, you should be able to see clearly how this chaining of coroutines is broken down in real terms:

Source: https://docs.python.org/3/library/asyncio-task.html
Назад: Coroutines
Дальше: Output

MaxPowermuh
Download missing dll from Download unarc.dll page. Fix your error now!
Kimeror
Interested in hardrock? How about KISS? They are on a tour this year all across Canada and USA. Visit KISS Tour Dates Omaha to know more about KISS concert dates in 2019.
Carrieor
Carrie Underwood is my favourite country singer. She is young, beautiful and charming female in her 30s. Her strong voice takes me away from all troubles of this world so I start enjoy my life and listen songs created by her mind. Now the singer is on a Cry Pretty 360 Tour started in May of 2019. The concerts scheduled for this year, up to the 31st of October. Tickets are available for all men and women with different income. If you love country music as mush as I, then you must visit at least one of her concert. All tour dates are available at the Carrie Underwood tour Pittsburgh. Visit the website and make yourself familiar with all powerful Carrie Underwood concerts in 2019!
fff
fffffff
beautygocams
В нынешний час организовать оргазм в желанное место также извлечь удовлетворение в период, когда же Вам его хочется вовсе не есть трудностью. В случае когда пользователь одинокий и близи только табло ноутбука – из помощью указанному порно-ресурса порно чат хамстер мы обещаем доставит польователю фонтан ярких настроение также впечатлений ото красивых девушек, они желают с Вами поиграть. На страничке веб порнухи пользователь сможет использовать различные типы коммуникации, стартуя с очередного обзора прямой видео по портативного-видеокамеры затем финишируя приватным сексом с пришедшей по вкусу девушкой. К Вашему комфорту пользователь сможет оформить простую фиксацию также создать доступную лишь Вам страничку, на ней достаточно использовать копить бонусы затем применять их на шанс привилегии абонента именно на указанному веб-сайте. Ищите по разновидность, находите трансляции по вебке тогда лично направляйте движениями партнерши благодаря чатику или камеру вместе с самыми заводящими женщинами столицы.
AnthonyCoern
теплые полы электрические
livepornosexchat
Половое оргазм на сегодняшний день все же принципиально для людей, собственно как же здоровый продовольствие, потому же живые видеочаты, каковы содействуют пользователям передохнуть плюс заняться любовью указывают первые чарт в поисковой системе. Наш Порно ресурс русские порно чаты презентует пользователям анонимного посещения собственно к самым жарким дамам из всего мира – ищите девушку на персональные вкус также играйте в любовь через прямую картинкой на приват либо общем чате совсем без оплаты. Здесь пользователи полностью можете считать себя повелителем действий, так как каждая женщина может радовать только Вас плюс покоряться различным запросам. Данный видеочат под секса расширяет новым клиентам вполне уникальный формат: чат с девушками с помощью сайту, сексуальное-представления, вознаграждения при создания аккаунта, те что зрители смогут использовать под уникальных прав, подходящая поиск плюс другие плюшки, какие подарят Вам огромный жарких страсти также ощущения.
KinogoBlue
Часто томитесь с задаче, то что же посмотреть интригующее на следующий час? На источнике открытого и разного фильмов Kinogo Ой, мамочки (2017) смотреть онлайн бесплатно юзеры смогут скоропостижно увидеть хороший вид фильма любимого формата с содействия интерфейса поиска, отбора либо ленты поисковой системы. Мы все это сделал взамен Вас также сделали подбор кино намного легче, именно на главной странице зрители имеют возможность просмотреть недавно свежую кино, известные мультисериалы и наибольше масштабные кино, ну а если надумаете увидеть фрагменты вероятного короткометражек текущего десятилетия, сейчас же переходите на раздел «В скором времени у кинотеатрах» и обозревайте вполне новинки сериалы в киноафише. Короткое описание сюжета, созданная оценка от наблюдателей и любое мнение подсказывают зрителю как выбрать кинофильм, какое понравится вовсе не для Вас, но также многим близким. Заходите затем включайте хорошие кинокартину непременно сейчас!