如何保证协议的发送方式是线程

2024-09-24 00:28:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用IntNReceiver协议开发TCP客户机服务器应用程序。服务器正在接受来自客户端的多个TCP连接。我想让其他线程在客户端和服务器上使用协议的sendString方法。我尝试使用同步队列,在单独的线程中进行监视reactor.callFromThread()从那里调用sendString。这似乎是可行的,但是在实际sendString真正发送字符串之前有大约20秒的奇怪延迟。它不阻塞,立即返回。我运行了strace,send()系统调用肯定被延迟了。用twisted做这种事情的正确方法是什么?在


Tags: 方法字符串服务器协议客户端客户机队列线程
1条回答
网友
1楼 · 发布于 2024-09-24 00:28:58

只需直接使用callFromThread作为队列。反应堆已经在同步运行并对其进行监控。无论您想从非reactor线程调用foo.sendString(),只需执行reactor.callFromThread(foo.sendString)。构建额外的基础设施来实现这一点(例如,您自己定制的同步队列)只是额外的代码,可能会中断,正如您已经发现的那样。在

相关问题 更多 >