料AboutJavaScriptを有効にして、ご利用ください。メソッドの返り値を使って同期を行うと、プログラムの予期せぬ動作を引き起こす恐れがある。このような同期を実装するクラスのサブクラスは、サブクラスの型に対してロックを行う。オブジェクトとはまったく別のものである。オブジェクトをロックして同期を行う。オブジェクトを使って同期を行うと解釈するかもしれないが、それは間違いである。オブジェクトに対してロックを行う。返すオブジェクトを使って同期を行ってはならない。プログラマの実際の意図は、明確に文書化するか、コードに注釈を加えるべきである。このルールに違反しているアクセス可能なスーパークラスのメソッドをサブクラスでオーバーライドしない場合、サブクラスは親クラスのメソッドを継承する。このことは、スーパークラスの固有ロックがサブクラスでも利用できるという誤解を与えるかもしれない。クラスリテラルを使用して同期を行う場合、信頼できないコードにロックオブジェクトへのアクセスを許してはならない。クラスがパッケージプライベートであれば、他のパッケージにある呼出し元はクラスオブジェクトにアクセスできないので、そのようなクラスの固有ロックを使って同期を行ってもよい。finalロックオブジェクトを使用する」を参照。オブジェクトを使って同期し、日付の解析を行う。オブジェクトに対して行われる。メソッドが追加されている。メソッドと同じロックポリシーに従わなくてはならないと考えて、このような間違った実装を行ってしまったのである。クラスには2つの異なるロックポリシーが混在することになり、スレッドセーフではなくなっている。(クラス名修飾)以下の適合コードでは、ロックを提供するクラス名(Base)として完全修飾名を使っている。オブジェクトを使って同期する。オブジェクトを使った同期を行っている。使用してクラスをロードする際に、信頼できない入力を引数として受け取らないこと。信頼できないコードに任意のクラスのロードを許可した後で信頼するクラスをロードしない」を参照。オブジェクトを使った同期を行っている。返す値を使って間違った同期を行っている。オブジェクトが返される。メソッドを呼ぶスレッドは、それぞれ異なるオブジェクトを使ってロックを行うことになる。内部クラスは、外部クラスの中に記述されていることもあり、内部クラスにおける並行処理に関するエラーは見落とされがちである。コードのレビュー担当者は、2つのクラスのロック方式が同じであると誤解するかもしれない。クラスリテラルを使った同期を行っている。クラスの固有ロックを使って同期を行う。メソッドを使用してもよい。オブジェクトを使用した同期は、予期せぬプログラムの動作を引き起こす場合がある。Locking翻訳元これは以下のページを翻訳したものです。有このページは役に立ちましたか?javascriptを有効にすると、ご回答いただけます。その他のご意見はPCサイトにて入力願います。