asyncio doc: add an example to schedule a coroutine from a different thread

This commit is contained in:
Victor Stinner 2014-02-04 18:18:27 +01:00
parent d8b24d756a
commit 5cb84ed5b1
1 changed files with 8 additions and 5 deletions

View File

@ -13,12 +13,15 @@ Concurrency and multithreading
------------------------------
An event loop runs in a thread and executes all callbacks and tasks in the same
thread. If a callback should be scheduled from a different thread, the
:meth:`BaseEventLoop.call_soon_threadsafe` method should be used.
thread. While a task in running in the event loop, no other task is running in
the same thread. But when the task uses ``yield from``, the task is suspended
and the event loop executes the next task.
While a task in running in the event loop, no other task is running in the same
thread. But when the task uses ``yield from``, the task is suspended and the
event loop executes the next task.
To schedule a callback from a different thread, the
:meth:`BaseEventLoop.call_soon_threadsafe` method should be used. Example to
schedule a coroutine from a different::
loop.call_soon_threadsafe(asyncio.async, coro_func())
To handle signals and to execute subprocesses, the event loop must be run in
the main thread.