【发布时间】:2013-11-09 14:16:01
【问题描述】:
我想创建两个子进程并分配文件中的单词排序。例如,第 1 个单词转到 child1,然后第 2 个单词转到 child2,然后第 3 个单词再次转到 child1,依此类推。这两个子进程应该并行运行,并使用 UNIX sort 命令对单词进行排序并将输出存储到文件中。
算法如下
1) 子进程解析器从文件中获取所有单词并写入管道
2) 子进程 Sorter 从管道中读取数据并使用 sort 和 execlp 函数对单词进行排序
3) 子进程抑制器使用 uniq 命令删除重复项。
现在我想将单词的排序拆分为 2 个子进程,但我不明白该怎么做。
提前感谢您的任何意见或帮助。
【问题讨论】:
-
您想使用 2 个 CPU 运行
sort -u input_file命令吗? -
我注意到 GNU
sort具有--parallel选项,即您可以运行sort --parallel=2 -u input_file它对同时运行 2 种排序的输入文件进行排序,删除输出中的重复项。 -
否 @J.F.Sebastian 我不想在排序中使用任何选项。我将不得不使用编程来做到这一点。有什么想法吗?