Skip to content

Instantly share code, notes, and snippets.

@oz123
Forked from miguelgrinberg/asyncio-async-await.py
Last active July 8, 2017 19:34
Show Gist options
  • Save oz123/8af58d038f5e459c68651fc86e8ffe74 to your computer and use it in GitHub Desktop.
Save oz123/8af58d038f5e459c68651fc86e8ffe74 to your computer and use it in GitHub Desktop.
async examples
import asyncio
loop = asyncio.get_event_loop()
async def hello():
await asyncio.sleep(3)
print('Hello!')
if __name__ == '__main__':
loop.run_until_complete(hello())
import asyncio
loop = asyncio.get_event_loop()
def hello():
loop.call_later(3, print_hello)
def print_hello():
print('Hello!')
loop.stop()
if __name__ == '__main__':
loop.call_soon(hello)
loop.run_forever()
import asyncio
loop = asyncio.get_event_loop()
@asyncio.coroutine
def hello():
yield from asyncio.sleep(3)
print('Hello!')
if __name__ == '__main__':
loop.run_until_complete(hello())
from eventlet import sleep
def hello():
sleep(3)
print('Hello!')
if __name__ == '__main__':
hello()
from gevent import sleep
def hello():
sleep(3)
print('Hello!')
if __name__ == '__main__':
hello()
import asyncio
loop = asyncio.get_event_loop()
async def hello():
print('Hello!')
await asyncio.sleep(3)
print('World!')
def greet():
return [hello() for i in range(10)]
if __name__ == '__main__':
loop.run_until_complete(asyncio.wait(greet()))
# outputs
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
# sleeps 3 second ...
World!
World!
World!
World!
World!
World!
World!
World!
World!
World!
from time import sleep
def hello():
sleep(3)
print('Hello!')
if __name__ == '__main__':
hello()
from twisted.internet import reactor
def hello():
reactor.callLater(3, print_hello)
def print_hello():
print('Hello!')
reactor.stop()
if __name__ == '__main__':
reactor.callWhenRunning(hello)
reactor.run()
from twisted.internet import reactor
from twisted.internet.defer import inlineCallbacks, Deferred
def sleep(secs):
d = Deferred()
reactor.callLater(secs, d.callback, None)
return d
@inlineCallbacks
def hello():
yield sleep(3)
print('Hello!')
reactor.stop()
if __name__ == '__main__':
reactor.callWhenRunning(hello)
reactor.run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment