1
UNIX OSでSysVセマフォを使用すると、セマフォの値が0になるまでプロセスが待機するアルゴリズムを実装できます(詳細はman semopを参照)。さて、誰もが他の同期APIを使用するほうがいいと言われるので、私の質問は、pthreads、POSIXセマフォー、または他の同様のAPIを使って同じ動作をどうやって得ることができるのでしょうか?可能でない場合は、SysVセマフォの使用について心配すべきですか?0のセマフォ同期0
EDIT:スレッドがpthreadを使用して作成されたマルチスレッドのシナリオを指しています。
質問を編集しました。私はマルチスレッドのシナリオに入っています。私はposixセマフォを使用することができますが、質問に記述されているように、セマフォの値0の同期を取得する明白な方法はありません。 – Raffo
@Rafflo:セマフォとは対照的に、バリアをエミュレートしようとしていますか?つまり、待機中のリソースは、バリアが0に達すると実行する準備が整いました。 –
はい、おそらくバリアを使用して同じことを達成できます。しかし、私は現在、pthreadにメモリバリアーが実装されていないOSXを利用しています。別のことは、セマフォが到達する値を認識していないことです。スレッドが0になるまでスレッドを停止させたいだけです。 – Raffo