python3套接字读取,避免虽然真或最佳做法
问题描述:
我必须在python中写一个简单的tcp转发器,它将永远运行。我将以1分钟的间隔获取数据。那么,我必须在while true
中运行socket.read()
吗? 有没有更好的方法来避免所有这些不必要的CPU周期? 还有一件事,socket.read()在一个线程中。python3套接字读取,避免虽然真或最佳做法
答
我是否必须运行socket.read()in while true?有没有更好的方法来避免所有这些不必要的CPU周期?
这是一个阻止read()
。所以你的进程(线程)在等待下一次网络通信时基本上处于睡眠状态,而不是消耗CPU周期。
答
在一天结束的时候,你仍然需要某种真实的。通常的做法是在某个地方睡觉。
如果您需要从多个套接字中读取数据,则需要使用select功能。 https://docs.python.org/3/library/select.html。这是因为read()操作可能会阻塞。
这是正确的。 – Jordan
谢谢你的澄清 –