作者TakiDog (多奇狗)
看板Python
标题Re: [问题] 请问 Coroutine & 一般 callback 合作的问题
时间Mon Feb 6 06:08:22 2023
如果程式中出现threading(非Asyncio.run_in_executor)与Async混用
我一定会先思考人生,是不是把Python变难了,是不是能从流程改善
让被歧视的胶水语言保有最後一点的优雅
> https://paste.ee/p/kgAsv
在同一个process中任意执行 asyncio.run 并不一定是同一个eventLoop
(不同thread又分别建立了Loop)
在整个process中 asyncio.run 基本上只应该存在一个
你可以尝试把asyncio.run的部分都改用 loop = get_event_loop()
查看loop的id. 或从Debugger查看
---
我尝试在你最後的code中修改,在同一个process存在2个loop
又希望不同的loop之间可以通知,感觉上就不太正确。
:
https://gist.github.com/takidog/c53f73e24295d66c76b5e330940bcf73
可以把loop, condition当作arg传入,或是当作global
(我认为都非常的糟糕)
> 因为有某些部份是引用别人写的 lib, 我不想去全面改写
:run_in_executor
我的理解可能也有错误,欢迎讨论
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.164.90.36 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1675634904.A.C15.html
※ 编辑: TakiDog (1.164.90.36 台湾), 02/06/2023 06:08:53
※ 编辑: TakiDog (1.164.90.36 台湾), 02/06/2023 06:11:38