This repository has been archived by the owner on Nov 23, 2017. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 178
Home
Ludovic Gasc edited this page Apr 11, 2015
·
3 revisions
The Tulip project is the asyncio module for Python 3.3. Since Python 3.4, asyncio is now part of the standard library.
Help:
- asyncio documentation
- asyncio examples
- Mailing list: python-tulip Google Group
- IRC:
#asyncio
channel on the Freenode network
Pages:
- [Contributing]: To contribute.
- [ThirdParty]: A list of 3rd party integrations with asyncio.
- [Benchmarks]: asyncio benchmarks
The asyncio module provides infrastructure for writing single-threaded concurrent code using coroutines, multiplexing I/O access over sockets and other resources, running network clients and servers, and other related primitives. Here is a more detailed list of the package contents:
- a pluggable event loop with various system-specific implementations;
- transport and protocol abstractions (similar to those in Twisted);
- concrete support for TCP, UDP, SSL, subprocess pipes, delayed calls, and others (some may be system-dependent);
- a Future class that mimics the one in the concurrent.futures module, but adapted for use with the event loop;
- coroutines and tasks based on
yield from
(PEP 380), to help write concurrent code in a sequential fashion; - cancellation support for Futures and coroutines;
- synchronization primitives for use between coroutines in a single thread, mimicking those in the threading module;
- an interface for passing work off to a threadpool, for times when you absolutely, positively have to use a library that makes blocking I/O calls.
Hello World using an asyncio coroutine:
import asyncio
@asyncio.coroutine
def hello_world():
print("Hello World!")
loop = asyncio.get_event_loop()
loop.run_until_complete(hello_world())
loop.close()
For AsyncIO on Python 2, see the trollius project.