我有一个案例,其中许多线程同时生成数据,最终写入一个长的串行流。我需要以某种方式序列化这些写操作,以便流按正确顺序写入。
即,我有一个输入队列包含2048个作业j0..jn,每个作业产生一块数据oi。这些作业在八个线程上并行运行,但输出块必须按照相应输入块的顺序出现在流中——输出文件必须按照o0o1o2...的顺序排列。
解决这个问题很明显:我需要一种缓冲区来累积和按正确顺序写入输出块,类似于Tomasulo算法中的CPU重新排序缓冲区,或者TCP重新组装乱序数据包后将其传递给应用层的方式。
在我开始编写代码之前,我想快速进行文献搜索,看看是否有任何论文可以以特别聪明或高效的方式解决这个问题,因为我有严格的实时和内存限制。然而,我似乎找不到任何描述这种情况的论文;对于每种[线程、并发、重排序缓冲区、重新组装、io、序列化]的排列组合进行学术搜索并没有得到有用的结果。我觉得我可能只是没有使用正确的术语进行搜索。
这种模式是否有常见的学术名称或关键字,我可以搜索一下?
即,我有一个输入队列包含2048个作业j0..jn,每个作业产生一块数据oi。这些作业在八个线程上并行运行,但输出块必须按照相应输入块的顺序出现在流中——输出文件必须按照o0o1o2...的顺序排列。
解决这个问题很明显:我需要一种缓冲区来累积和按正确顺序写入输出块,类似于Tomasulo算法中的CPU重新排序缓冲区,或者TCP重新组装乱序数据包后将其传递给应用层的方式。
在我开始编写代码之前,我想快速进行文献搜索,看看是否有任何论文可以以特别聪明或高效的方式解决这个问题,因为我有严格的实时和内存限制。然而,我似乎找不到任何描述这种情况的论文;对于每种[线程、并发、重排序缓冲区、重新组装、io、序列化]的排列组合进行学术搜索并没有得到有用的结果。我觉得我可能只是没有使用正确的术语进行搜索。
这种模式是否有常见的学术名称或关键字,我可以搜索一下?