- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
从事件线程外部将协程推送到事件线程的 pythonic 方法是什么?
最佳答案
更新信息:
从Python 3.7 高级函数asyncio.create_task(coro)
开始was added并且可以代替 asyncio.ensure_future
和 loop.create_task
来创建任务。
Python 文档 refers asyncio.create_task(coro)
关于“创建新任务的首选方式”。
原答案:
需要说明的是:asyncio 通常在单线程中运行。并发性不是由线程提供的,而是通过使用单个事件循环来运行不同的协程。
如果你想提交并发运行的协程而不等待它的结果你应该创建task使用 asyncio.ensure_future
(来自 create_task
的 difference)。
但是,如果您的应用程序使用多个线程,并且您希望将从一个线程运行的协程提交到在另一个线程中运行的事件循环,则应使用 run_coroutine_threadsafe
。这里很好example在另一个线程中运行事件循环并从主线程提交协程。
关于loop.create_task 和 asyncio.run_coroutine_threadsafe 之间的 Python asyncio 区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48216951/
我有一个永远运行的脚本(它检查文件中的更改)。每当生成奇怪的文件时,我都需要发送 Discord 消息。 问题是,事件监视函数(下面的 def run(self):)来自子类,所以我不能将它更改为 a
我有一个永远运行的脚本(它检查文件中的更改)。每当生成奇怪的文件时,我都需要发送 Discord 消息。 问题是,事件监视函数(下面的 def run(self):)来自子类,所以我不能将它更改为 a
我观察到 asyncio.run_coroutine_threadsafe 函数不接受一般的可等待对象,我不明白这种限制的原因。观察 import asyncio async def native_c
我不确定我在这里做错了什么,我正在尝试创建一个包含队列并使用协程来使用该队列上的项目的类。问题在于事件循环在单独的线程中运行(在该线程中我执行 loop.run_forever() 以使其运行)。 不
我正在尝试了解 asyncio 模块并使用 run_coroutine_threadsafe 函数花费大约一个小时,我什至来到了工作示例,它按预期工作,但有几个限制。 首先,我不明白我应该如何在主(任
作为我的 previous question about calling an async function from a synchronous one 的后续行动,我发现了asyncio.run_
1>Python Asyncio 未使用 asyncio.run_coroutine_threadsafe 运行新的协程。下面是在Mac上进行的代码测试。 ——————————————————————
从事件线程外部将协程推送到事件线程的 pythonic 方法是什么? 最佳答案 更新信息: 从Python 3.7 高级函数asyncio.create_task(coro)开始was added并且
我是一名优秀的程序员,十分优秀!