2

異なるコンソールでプログラムの実行を同期するために使用できるコマンド ライン ユーティリティを作成したいと考えています。

Console A: 
$ first_program && semaphore -signal

Console B:
$ semaphore -wait && second_program

最初のプログラムは完了するまでに時間がかかります。2 番目のプログラムは、最初のプログラムが終了したときにのみ開始できます。

これを実装するには、どの同期オブジェクトが必要ですか?

4

2 に答える 2

5

これには Python を使用する必要はありません。Unixを使用していることを考慮して、これを試してください:

まず、セマフォ用のパイプを作成します。

mknod /tmp/semaphore p

次に、プログラム:

Console A:
$ first_program && echo a > /tmp/semaphore

Console B:
$ read < /tmp/semaphore && second_program

実際、この方法は両方の方法で機能します。書き込みがあるまで読み取りはブロックされ、その逆も同様です。

于 2010-04-28T21:33:02.023 に答える
0

それらが同じマシン上にある場合、最初のプログラムは一時ファイルに触れることができます。

PythonにはGaminモジュールがあり、2番目のプログラムがそこに座って、リソースを拘束せずに待機できるようにします。ビジーウェイトや、睡眠などで何かをすることではありません。

于 2010-04-28T21:27:17.017 に答える