我正在编写一个C ++程序,该程序将被另一个程序调用。我的程序流程如下图所示:
程序说明: program-1
会定期调用program-2
(大约每30秒调用一次)。 program-2
的唯一任务是写入数据,但是我不想阻止program-1在写入数据时等待。因此,我想分配将数据写入另一个线程并立即退出Program-2
的任务。
问题:我应该如何在Program-2
中实现一个线程,以使其不会阻塞program-1
?
PS:每次都需要将数据写入同一文件。
答案 0 :(得分:1)
如果保存数据花费的时间多于产生数据的时间,那么您将不得不并行地将其写入另一个文件,您别无选择,因为即使缓冲数据也会导致缓冲区无限期地增长和增长。
如果不是这种情况,则您不需要在program-2中使用单独的线程,请先读取所有数据,然后每次将其写入文件中。