python 异步框架 不能混用同步代码_在Python中混合使用同步和异步代码

我正在尝试使用asyncio将Python代码中基于回调的同步流转换为a同步流。

基本上,代码与TCP/UNIX套接字交互很多。它从套接字读取数据,操纵它做出决策,并将数据写回另一端。这是在多个套接字上同时进行的,并且数据在上下文之间共享,以便有时做出决策。在

EDIT::当前的代码主要基于注册一个回调到一个特定套接字的中心实体,并在相关套接字可读时让该实体运行回调(类似于“当该套接字有数据要读取时调用此函数”)。一旦回调被调用,就会发生一系列的事情,最终在新数据可用时注册一个新的回调。中心实体对所有注册的套接字运行select,以确定应该调用哪些回调。在

我试图做到这一点,而不是重构我的整个代码,并使它尽可能无缝的程序员-所以我试着这样想-所有的代码都应该像今天一样运行-但是每当当前代码做接收插座()以获取新数据-该进程将执行其他任务。当read返回时,它应该返回到使用它获得的新数据处理来自同一点的数据。在

为此,我编写了一个名为AsyncSocket的新类,它与asyncIO的IO流交互,并将Async/await语句几乎完全放在其中—我认为我将在类中实现recv方法,使其在我的代码中看起来像“常规IO套接字”。

到目前为止,这是我对A-sync编程应该允许什么的理解。在

现在是问题:

我的代码等待客户机连接-当它连接时,允许每个客户机的上下文从它自己的连接读写。

为了澄清问题,我简化为以下流程:class AsyncSocket():

def __init__(self,reader,writer):

self.reader = reader

self.writer 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值