1

フォローアップの質問があります: EJB3.1コンテナ管理の同時実行と同期

ロックは、永続コンテキストなど内のデータへの同時アクセスを防ぐだけですか、それともプライベートフィールドの同期も提供しますか?

4

1 に答える 1

1

java.util.concurrent.ReadWriteLockコンテナが呼び出しているlock()Beanごとに、メソッドの構成に応じて、またはunlock()のいずれかのメソッド呼び出しの周囲にあることを想像するのが最も簡単です。したがって、インスタンス変数は保護されます。readLock()writeLock()@Lock

ただし、@PersistenceContextコンテナは実際にプロキシオブジェクトを挿入するため、コンテナ管理フィールドは「共有」状態ではないことに注意してください。そのプロキシでの各メソッド呼び出しは、EntityManagerトランザクションごとに委任されEntityManagerます。トランザクションはスレッド間で共有されないため、Beanが@ConcurrencyManagement(BEAN)他の同期なしで使用している場合でも、スレッドセーフです。

于 2012-05-17T12:12:49.823 に答える