python3套接字读取,避免虽然真或最佳做法

问题描述:

我必须在python中写一个简单的tcp转发器,它将永远运行。我将以1分钟的间隔获取数据。那么,我必须在while true中运行socket.read()吗? 有没有更好的方法来避免所有这些不必要的CPU周期? 还有一件事,socket.read()在一个线程中。python3套接字读取,避免虽然真或最佳做法

我是否必须运行socket.read()in while true?有没有更好的方法来避免所有这些不必要的CPU周期?

这是一个阻止read()。所以你的进程(线程)在等待下一次网络通信时基本上处于睡眠状态,而不是消耗CPU周期。

+0

这是正确的。 – Jordan

+0

谢谢你的澄清 –

在一天结束的时候,你仍然需要某种真实的。通常的做法是在某个地方睡觉。

如果您需要从多个套接字中读取数据,则需要使用select功能。 https://docs.python.org/3/library/select.html。这是因为read()操作可能会阻塞。