2009-07-31 10 views
0

私はマルチスレッドで同期に関連する問題に直面しています。 私はアプリケーションがアプリケーションを構築するために使用する共有ライブラリを持っています。ライブラリから 私は、要求を聞いてスレッドを作成して、そのスレッドをリアルタイムで処理しています。ライブラリから、私は、他のモジュールから応答が来るのを待つ、本質的に同期しているAPIを呼び出しました。このAPIには、最初のレスポンスの後にレスポンスが来る他のモジュールからの依存関係がありますが、2番目のレスポンスが1番目になるため、APIが失敗し、時にはうまくいきます。 mutexロックarpitが既に適用されています。 誰でも問題を解決する方法を教えてください。 私の質問がはっきりしていることを願っています。マルチスレッド - Unixでの同期

EDIT:そのC + UNIX

+2

言語/技術? –

+0

どのバージョンのUnixを知るのに役立つかもしれません。これにより、どのスレッドライブラリが利用可能かが決まります。 –

+0

私はSuse10を使用しています – Arpit

答えて

1

にそれは時間のシーケンス図であなたの質問を強化するために役立つだろう。

とにかく、あなたの説明次のような問題がであってもよい: - いくつかのライブラリは、マルチスレッドの使用 のために設計されていません - スレッド/プロセス - すべての操作は、(ミューテックスの良い説明がhereを見つけることができます) ミューテックスでブロックされていません優先度 - 同期/非同期APIが混在している(つまり、あるパラメータはイベントによって返され、別のパラメータは関数呼び出しを使用して返されます)

注文が唯一の問題であれば、シーケンス番号またはタイムスタンプ。これにより、コードで最も早いイベントを見つけることができます。

こちらがお役に立てば幸いです。

関連する問題