用法:
asyncio.run_coroutine_threadsafe(coro, loop)
将协程提交给给定的事件循环。线程安全。
返回
concurrent.futures.Future
以等待来自另一个 OS 线程的结果。此函数旨在从与运行事件循环的操作系统线程不同的操作系统线程中调用。例子:
# Create a coroutine coro = asyncio.sleep(1, result=3) # Submit the coroutine to a given loop future = asyncio.run_coroutine_threadsafe(coro, loop) # Wait for the result with an optional timeout argument assert future.result(timeout) == 3
如果协程中出现异常,将通知返回的 Future。也可以用来取消事件循环中的任务:
try: result = future.result(timeout) except concurrent.futures.TimeoutError: print('The coroutine took too long, cancelling the task...') future.cancel() except Exception as exc: print(f'The coroutine raised an exception: {exc!r}') else: print(f'The coroutine returned: {result!r}')
请参阅文档的并发和多线程部分。
与其他 asyncio 函数不同,此函数需要显式传递
loop
参数。版本 3.5.1 中的新函数。
相关用法
- Python asyncio.run用法及代码示例
- Python asyncio.BaseTransport.get_extra_info用法及代码示例
- Python asyncio.shield用法及代码示例
- Python asyncio.wait_for用法及代码示例
- Python asyncio.create_task用法及代码示例
- Python asyncio.Task.cancel用法及代码示例
- Python asyncio.loop.run_in_executor用法及代码示例
- Python asyncio.Server用法及代码示例
- Python asyncio.Server.serve_forever用法及代码示例
- Python asyncio.Event用法及代码示例
- Python asyncio.gather用法及代码示例
- Python asyncio.sleep用法及代码示例
- Python asyncio.to_thread用法及代码示例
- Python asyncio.Condition用法及代码示例
- Python asyncio.SelectorEventLoop用法及代码示例
- Python asyncio.Lock用法及代码示例
- Python asyncio.Future.add_done_callback用法及代码示例
- Python asyncio.loop.shutdown_asyncgens用法及代码示例
- Python asyncio.as_completed用法及代码示例
- Python asyncio.Semaphore用法及代码示例
注:本文由纯净天空筛选整理自python.org大神的英文原创作品 asyncio.run_coroutine_threadsafe。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。