POSIXという名前のセマフォを使用して単純なリーダー/ライタープログラムを作成しようとしていますが、一部のシステムでは、最初のセマフォですぐに停止し、それだけです...私は今では本当に必死です。誰か助けてもらえますか?私のシステムでは正常に動作しているため、ltraceで問題を追跡することはできません。(コメント申し訳ありませんが、私はチェコ共和国から来ました)
質問する
2638 次
2 に答える
1
POSIXセマフォは割り込み可能であるため、アプリケーションコードにはあまり適していません。基本的に、プロセスに対するあらゆる種類のIOは、シグナリングを台無しにします。この投稿をご覧ください。
sem_
したがって、関数から返されるすべてのエラーを適切に解釈するように注意する必要があります。あなたが投稿したコードにはそのようなものはありません。
POSIXの実装がそれらをサポートしている場合は、rwlocksを使用するだけです。これらはこのために作成されており、はるかに高いレベルであり、そのような問題は発生しません。
于 2012-05-15T21:44:44.570 に答える
0
コンピュータサイエンスでは、リーダーとライターの問題は、並行性における一般的なコンピューティングの問題の例です。問題には少なくとも3つのバリエーションがあり、多くのスレッドが一度に同じ共有メモリにアクセスしようとする状況に対処します。一部のスレッドは読み取りと書き込みを行う場合がありますが、別のプロセスが共有に書き込みを行っている間は、読み取りまたは書き込みのいずれの場合も共有にアクセスできないという制約があります。(特に、2人以上のリーダーが同時に共有にアクセスすることが許可されています。)リーダー・ライター・ロックは、1つ以上のリーダー・ライターの問題を解決するデータ構造です。
于 2015-11-10T06:18:52.083 に答える