専用ロックオブジェクト
外部に公開しない、ロック専用のインスタンス。.NET 9 / C# 13以降はSystem.Threading.Lock型を使う。
- 概念URI
https://comcomponent.com/knowledge/dedicated-lock-object/
- 最終確認日
- 2026-08-01
- 機械可読データ
- JSON-LD
この概念が関わる関係
- 専用ロックオブジェクトはデッドロック(deadlock)を軽減します。型やthisをロック対象にしてはならない。lock(this)は自分のインスタンスを参照できる外部コードと、lock(typeof(X))はより広い範囲とロックを共有してしまう。専用ロックはこうした意図しないロック共有を避けるが、複数ロックを一貫しない順序で取るデッドロックには順序の規律が別途必要。.NET 9 / C# 13以降は専用のSystem.Threading.Lockインスタンスを使う。 / 確度: 確立した関係 / 確認日: 2026-08-22 出典
- SemaphoreSlimは専用ロックオブジェクトの実装を担います。非同期コードでの相互排他には、カウント1のSemaphoreSlimをWaitAsyncとtry/finallyのReleaseで使う。SemaphoreSlimはプロセス内専用の軽量セマフォで、プロセス間同期には名前付きのSemaphoreを使う。 / 確度: 確立した関係 / 確認日: 2026-08-02 出典 出典
- synchronizedブロックは専用ロックオブジェクトを前提とします。synchronized(this)やsynchronized(SomeClass.class)は外部のコードが同じオブジェクトをロックできてしまうため、外部に公開しないprivate finalのロックオブジェクトを守りたいデータと1対1で対応させる。 / 確度: 確立した関係 / 確認日: 2026-08-02 出典
この概念を扱う記事
一次資料
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。