FIFO 用于在线程之间进行通信



我有一个包含电子邮件地址的文件,我想向其发送电子邮件。

我已经将工作拆分为两个

  • 一个读取文件的任务
  • x 发送电子邮件的其他任务

为了在第一个任务和其他任务之间进行通信,我认为使用 FIFO(感谢 posix_mkfifo(将是一个好主意,每个"发送任务"有一个 FIFO,并循环浏览它们。由于我有时需要停止脚本,因此我在每次读取后(在第一个任务中(保存地址文件的偏移量。

问题是当我关闭 FIFO 时,偏移量可能位于第 500 行(因此 500 个地址读取并通过 FIFO 发送(,但也许每个任务只处理了 5 行。 如何防止编写器端的 FIFO 关闭以停止其他任务以让他们处理队列?

我能够通过读/写打开FIFO来解决我的问题,而不仅仅是在第二个任务上读取

最新更新