1

for変換したいループがありますparallelbashただし、ループ内でグローバル ( ) 配列に追加しています。この状況に対処するための推奨される方法は何ですか? parallel以外に、ジョブ間の同期の形式を提供します--keep-orderか?

flock配列をとの組み合わせに置き換えることを考えましたecho > some_shared_fileが、「クリティカル セクション」をparallel.

4

1 に答える 1

1

Bash には「スレッド ローカル」変数しかありません。異なるスレッドから更新できるグローバル変数はありません。すべての変数/配列はサブプロセスにコピーされ、1 つの変更は別のサブプロセスには反映されません。

より一般的な答えは、さまざまなプロセスから実際に更新できるリソースがある場合sem、GNU 並列に付属するものを使用することです。

于 2014-04-22T22:08:32.337 に答える