[Async-sig] concurrency mistake

Dima Tisnek dimaqq at gmail.com
Tue Aug 28 07:30:48 EDT 2018


What Bret said, here (perhaps) more concise:

async def main():
    f1 = ensure_future(say("two", 2))
    f2 = ensure_future(say("one", 1))
    # at this point both are running
    await f1
    await f2

Note that current event loop is automatic since Python 3.6; Futures are
higher level abstraction, but I think it's better to start with futures :)

On Mon, 27 Aug 2018 at 5:47 PM, saurabh singh <saurabh3460 at gmail.com> wrote:

> my question is 1st one is concurrent but 2nd one is not, how and please
> correct me, what i miss and what  should i know more
> thank you
>
> import asyncio
>
> # 1st code
> async def say(what, when):
>     await asyncio.sleep(when)
>     print(what)
>
> loop = asyncio.get_event_loop()
>
> loop.create_task(say('first hello', 2))
> loop.create_task(say('second hello', 1))
>
> loop.run_forever()
> loop.close()
>
> '''
> result
> >>> second hello
> >>> first hello
> '''
>
> # 2nd code
> async def say(what, when):
> await asyncio.sleep(when)
> print(what)
>
> async def main(loop):
>     yield from loop.create_task(say('first hello', 2))
>     yield from loop.create_task(say('second hello', 1))
>     print('close')
>
> loop = asyncio.get_event_loop()
> loop.run_until_complete(main(loop))
> loop.close()
>
> '''
> result
> >>> first hello
> >>> second hello
> '''
>
> _______________________________________________
> Async-sig mailing list
> Async-sig at python.org
> https://mail.python.org/mailman/listinfo/async-sig
> Code of Conduct: https://www.python.org/psf/codeofconduct/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/async-sig/attachments/20180828/00ef23bb/attachment.html>


More information about the Async-sig mailing list