2011-07-19 8 views
1

私のばかげた質問に申し訳ありませんが、どうすればよいですか アップグレードの共有所有権をアップグレードしますか?mutexの所有権を共有からアップグレードにアップグレードするにはどうすればよいですか?

したがって、unlock_upgrade_and_lock_shared()とは逆の方法はありますか? (そこにはありますか) 所有権が共有されている場合、unlock_shared()とlock_upgrade()を使用せずにアップグレードする方法を教えてください。

アップグレードオーナーシップの概念を理解できません。 unlock_shared_and_lock()のようなメソッドがないのはなぜですか? 「アップグレード」のような所有権を持つことのメリットは何ですか?

おかげさまで、ありがとうございました。私の英語(とばかげた質問)には申し訳ありません:)!

答えて

1

スレッドのアップグレード所有権があるか、所有権を共有しているか、排他的所有権を持っています。 lock_upgrade()は、あなたの所有権をsharedからupgradeに変換します。所有権のアップグレードは、共有ロックを解除せずに排他的所有権を取得する直接的な方法を提供します。

ここで、docsは、ロックの所有権タイプを理解し、すべての可能な状態の変更を管理する方法を教えてくれます。

+0

lock_shared()とunlock_shared()の前後で、 lock_upgrade()とunlock_upgrade()を呼び出すことができますか? –

+0

私がそれを読んでいる方法では、ロックなしから共有/アップグレードのいずれかに直接移行することができます。ロックがアップグレード所有権をサポートしている場合は、共有所有権から所有権をアップグレードすることもできます。その後、完全にロックを解除するか、共有所有権へのアップグレードからロック解除することができます(または、必要に応じて排他的に)。私はあなたがしたい移行を示す新しい質問にサンプルコードを投稿する方が良いと思います。 –

関連する問題