C#では、lock
キーワードは、try/catch
ブロックとMonitor
のインスタンスのための素晴らしい構文です。同期されたjavaキーワードはどのように実装されていますか?
Javaでは、どの同期クラスがキーワードのフードに使用されていますか?
編集 - 私はさらにいくつかのポンキングを行いました。同期化されたものがmonitorenter/monitorexitバイトコードオペレーションにコンパイルされるようです。これらのセマンティクスを複製したクラスはありますか?
C#では、lock
キーワードは、try/catch
ブロックとMonitor
のインスタンスのための素晴らしい構文です。同期されたjavaキーワードはどのように実装されていますか?
Javaでは、どの同期クラスがキーワードのフードに使用されていますか?
編集 - 私はさらにいくつかのポンキングを行いました。同期化されたものがmonitorenter/monitorexitバイトコードオペレーションにコンパイルされるようです。これらのセマンティクスを複製したクラスはありますか?
クラスは使用されていません。これは、JVMによって処理される言語構成です。
しかし、Java 5では、Lock
インターフェイスとその複数の実装を持つjava.util.concurrent.locks
が導入されました。サンプルの使用方法についてはリンク先のドキュメントを参照してください。
キーワードは、変更するエンティティをJVM内部のロックと同期させます。私が思い出す限り、それのための設計されたクラスはなく、必ずしも特定のOS構成に対応するとは限りません。
しかし、ロック機構のbytecode constructがあり、同期化された{}
ブロックの入退出に使用されます。
私はもう少し掘り下げました - それはmonitorenter/monitorexitバイトコードオペレーションにコンパイルされるようです –