【发布时间】:2010-01-19 13:32:22
【问题描述】:
我有一个以非阻塞模式打开的 Linux fifo。正如预期的那样,当我对文件对象调用 read 时,它会立即返回。我使用 select 来确保没有忙等待,但是当有任何可用数据时,我的程序仍会收到通知。出于好奇,我尝试了 readline 函数,并惊讶地发现 readline 会阻塞,直到找到换行符。我通过 top 检查了处理器的使用情况,似乎 readline 并没有忙于等待。由于我的应用程序对性能很敏感,我想知道在非阻塞套接字上使用 readline 时是否会影响性能。
【问题讨论】:
-
如果
readline直到换行才缓冲输入,您会如何工作? -
除了引发异常,或者可能是 C 级 errno,当前的行为是合理的。我更惊讶的是(如果我观察到的是正确的)Python 在找到换行符之前不会在非阻塞套接字上使用 getc 进行轮询。
标签: python file pipe readline nonblocking