FIFO用于线程之间的通信

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

我把工作分开了

  • 一项读取文件的任务

  • x 其他发送电子邮件的任务

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

问题是当我关闭 FIFO 时,偏移量可能在第 500 行(因此 500 个地址通过 FIFO 读取和发送)但每个任务可能只处理了 5 行。如何防止写入端关闭 FIFO 以阻止其他任务让它们处理队列?


ibeautiful
浏览 120回答 1
1回答

千万里不及你

我能够通过以读/写方式打开 fifo 而不是仅在第二个任务上读取来解决我的问题
打开App,查看更多内容
随时随地看视频慕课网APP