我有一个情况,许多线程都同时生成最终写入一个长串流文件流的数据。我需要以某种方式将这些写入序列化,以便将流写入正确的顺序。线程I/O重排序缓冲区的标准术语?
即,我的2048 J任务 ..j Ñ,其每一个产生的数据块ö我输入队列。作业在8个线程上并行运行,但输出块必须以与相应输入块相同的顺序出现在输出块中,输出文件必须按以下顺序排列:o o o o ...
的解决方案,这是非常不言自明:我需要在Tomasulo's algorithm某种缓冲区积累和正确的顺序写入输出块,类似于CPU重新排序缓冲器,或到路TCP在将它们传递到应用层之前重新组装无序数据包。
在我开始编写代码之前,我想快速搜索文献,看看是否有任何文章以特别聪明或有效的方式解决了这个问题,因为我有严重的实时和内存限制。我似乎无法找到任何描述这一点的论文;在[线程,并发,重新排序缓冲区,重新组装,io,序列化]的每个排列上的学者搜索没有取得任何有用的结果。我觉得我不应该在寻找正确的术语。
是否有这种模式的常用学术名称或关键字,我可以搜索?
真正串行 - 流密码。 – Crashworks 2010-05-28 22:14:58
只有在处理完成之前输出记录的长度已知,您的解决方案才能正常工作。 – 2010-05-30 17:34:22