私は2つのリソース、という名前があると0し、1唯一の排他的にアクセスすることができ、。
xargs無料の相互排除サービスとして使用するために起動する「並列プロセッサ」の「インデックス」を回復する方法はありますか?たとえば、次の並列化された計算を検討してください。
$ echo {1..8} | xargs -d " " -P 2 -I {} echo "consuming task {}"
consuming task 1
consuming task 2
consuming task 3
consuming task 4
consuming task 5
consuming task 6
consuming task 7
consuming task 8
私の質問はindex、出力が次のようになるような魔法の単語があるかどうかです
$ echo {1..8} | xargs -d " " -P 2 -I {} echo "consuming task {} with resource index"
consuming task 1 with resource 0
consuming task 2 with resource 1
consuming task 3 with resource 1
consuming task 4 with resource 1
consuming task 5 with resource 0
consuming task 6 with resource 1
consuming task 7 with resource 0
consuming task 8 with resource 0
ここで、唯一の保証は、リソース0を使用するプロセスが最大で1つだけであり、同じことです1。基本的に、このインデックスを、通知されたリソースのみを使用するルールを尊重する子プロセスに伝えたいと思います。
もちろん、これを3つ以上のリソースに拡張することをお勧めします。ドキュメントを調べると、xargsおそらくこれができません。最小限の同等のソリューションはありますか?偽のロックとしてファイルを使用/クリーニングすることは好ましくありません。