この質問は理論的なものですが、申し訳ありませんが、今回は避けられません。 私は約ReentrantLock
とread thisを学んでいる:ReentrantLockフェアネスパラメータ
注しかし、ロックの公平性がスレッドのスケジューリングの公平性を保証するものではありません。
これはどういう意味ですか?どのように私はこれを想像することができますか?
はのは、ロックが今誰もが保持されていないと仮定してみましょう:
- スレッドスケジューラは、(最長待機中のスレッドではありません)
t1
スレッドロック - を取得する
t1
試みを目覚めますロックを拒否するt1
t1
が最長待機スレッドではないため、t1
- スレッドスケジューラがスレッドを起動します
Javaはこのように動作しますか?非常に不成功なケースでは、これは文脈の切り替えが多いことを意味します(これは、スループットが低くなり、ドキュメントに書かれています)。
ドクは、フェアネス・ロックが飢餓の欠如を保証することを言いますが、他のスレッドがprogression.Meansない間、多くのスレッドの1が連続してロック複数の時間を得ることができるそれが最近 –