用法:
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。