我正在参与一个更大的项目,该项目必须从大量 FIFO 中读取并正确重定向它们,具体取决于命令。为了实现这一点,FIFO 在无限循环中按顺序读取。
问题是它消耗了太多资源。我可以理解这个过程总是在做操作并唤醒处理器,但我想避免这么多的过载。
- 一个选项是使用信号,但它使处理变得更加混乱,并且在处理其中一个命令时很难避免切断执行。
- 另一种选择是使用阻塞读取,但是我需要为每个 FIFO 设置一个进程,因为我不知道谁以及何时发送命令。
- 另一种选择是睡觉,但我认为不是最好的选择,只睡几毫秒并没有太大的区别(我还没有尝试过)。
你有其他的想法来避免这么多的超载吗?