如果要以与常规函数相同的方式调用异步函数,则可能对使用gevent感兴趣。
@H_502_3@asyncio希望您将函数显式标记为,@H_502_3@async并在@H_502_3@await发生异步情况的任何地方显式使用。换句话说,@H_502_3@asyncio希望您具有用于同步和异步代码的不同接口。
这是为应对并发问题而做出的有意识的决定,当隐藏代码的异步特性时(例如在gevent中),很难实现。
所以是的- 如果您想同时支持两个世界,则可以采用两种不同的Independent@H_502_3@AsyncCommunicationStack和@H_502_3@CommunicationStackClass。虽然一旦有了异步版本,您就可以使用它强制转换关键代码,并通过asyncio.run()运行它使其同步。唯一的问题是那之后您将无法返回异步世界。