2016-04-12 4 views
0

私はRのUnixシステムプログラミングのR &を読んでいました。私はmutexに関する質問に遭遇しました。その本に記載されている次の段落について。彼がミューテックスを待っているスレッドが論理的に割り込むことはできないと言ったとき、スレッドがミューテックスを待っているときにコンテキストスイッチを行うことができなくなるのでしょうか?誰かがそれを精巧にすることはできますか?ミューテックスを待っている間にスレッドを論理的に中断できますか?

ミューテックスを待機スレッドが処理を終了する 以外は、論理的に中断されないが、(シグナルハンドラから) pthread_exitとスレッドの終了、または(通常は使用されない)、非同期キャンセル 。

答えて

1

いいえ、コンテキストスイッチができないわけではありません。これとは逆に、すでに獲得されているmutexを待っているスレッドは、ほとんど常にになります。おそらく少し遅れてコンテキストスイッチが離れるでしょう。

すべての意味は、pthread_mutex_lock()コールがEINTRなどを返さないことです。つまり、ミューテックスを正常に取得するか、永続的なエラーを返すかのいずれかです。

関連する問題