标题说真的。我在Linux EC2实例上运行程序,有4个线程。其中三个正在侦听不同的websockets,最后一个是webscraping,并在需要时调用一组其他函数。
如果GIL归第四个线程所有(即它当前正在通过单核运行计算),是否有可能被侦听的线程“错过”了websocket消息?
我开始认为这是不可能的,但却不明白为什么。我环顾四周,但收效甚微。
答案 0 :(得分:0)
实际上,即使您的应用程序被完全阻止,也可以通过安排或者只是暂停操作系统来排队传入的网络消息。您可能会丢失消息,如果TCP缓冲区开始溢出,我认为在您的情况下不太可能。您可以通过故意在第4个线程中休眠一段时间来测试您的想法,看看是否丢弃了消息。