繁体   English   中英

如果我在一个线程中监听websocket而在另一个线程中运行函数,则可能会丢失消息

[英]If I am listening to a websocket in one thread and running a function in another thread is it possible to miss messages

标题确实说明了一切。 我在具有4个线程的Linux EC2实例上运行程序。 其中三个正在监听不同的WebSocket,最后一个是Web爬网,并在需要时调用其他功能。

如果GIL属于第4个线程(即当前正在通过单个内核运行其计算),则Websocket消息可能被监听的线程“遗漏”了吗?

我开始认为这是不可能的,但对原因却一无所知。 我环顾四周,但收效甚微。

即使您的应用程序被完全阻止,例如通过调度或只是使操作系统进入休眠状态,也不会将进入的网络消息排队。 如果TCP缓冲区开始溢出,您可能会丢失一些消息,我认为这种情况不太可能发生。 您可以通过故意在第4个线程中休眠一段时间来测试您的想法,并查看消息是否被丢弃。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM