わかりました..ここに問題の背景があります。ミューテックスで保護しようとしている「重要な」コードがいくつかあります。それはこのようなものになります
Mutex.Lock()
// 重要なコード // 一部のファイル IO
Mutex.Unlock()。
今の問題は、これが原因で私のプログラムが「スタック」しているように見えることです。例を挙げて説明しましょう。
Thread_1 が入ります。Mutex.Lock() に移動し、重要なコードの実行を開始します。重要なコードでは; ファイル IO を実行する必要があります。この時点で; 「コンテキスト切り替え」が発生し、Thread_2 が入って Mutex.Lock() でブロックされると思います (Thread_1 にロックがあるため)。すべて問題ないようですが、私の場合は。ここでプログラムが「ハング」します..私が考えることができる唯一のことは、どういうわけかThread_2が永遠にブロックし続け、Thread_1に戻らないということです??
詳細: Linux で pthread_mutex_init と pthread_mutex_lock を使用する。