synchronizedキーワードの使用上のスレッドロック、キーワードの使用は、主に次の2つのタイプに分けること:
一つは、フォームの、メソッドの名前の前に添加される:同期methodeName(paramsは){...}。
フォームの第2シンクブロック文:同期(本){...}。
明らかに、メソッド名に加えて、比較的広い範囲、および宣言シンクブロック範囲が小さい点であると前に、より高い一般的な範囲の同期は、悪い性能、時間を同期させるためにロックするための一般的な必要性は、確かに可能な限り小さく範囲でありますその優れたパフォーマンス*。
まず、この同期化(この)同期ブロック、実施される時間だけつのスレッドにアクセスするには、2つの並行スレッドで同一の対象物。別のスレッドがコードブロックの実装が完了した後に、コードブロックを実行するために、現在のスレッドを待たなければなりません。
2.アクセスするときにスレッド同期(本)同期ブロックのオブジェクトが、別のスレッドが依然として非同期(本)同期ブロック内のオブジェクトにアクセスすることができます。
第三には、スレッドが同期(本)同期ブロックのオブジェクトにアクセスするときに特に重要であり、同期コード・ブロックにアクセスするための同期、他のすべてのスレッド(この)の別の目的は、ブロックされます。
クラスシングルトン{ //プライベートコンストラクタは、現在クラスの確保にクラスをインスタンス化しません プライベートシングルトン(){ } //自分の中のクラスのインスタンスを作成します プライベート静的シングルトンシングルトン。 // Sのインスタンスを返すgetメソッドを作成します パブリック静的シングルトンのgetInstance(){ ヌル、すなわち、インスタンス化する必要性を判断した場合//は、シングルトンがヌルであるか否かを判断します IF(シングルトン== NULL){ シングルトン=新しいシングルトン(); } シングルトンを返します。 } } ロック解除//シングルトンレイジー・モード、
//シングルトン - Lanhanロック式 クラスシングルトン{ プライベートシングルトン(){ } プライベート静的シングルトンシングルトン。 プライベート静的シングルトンのgetInstance(){ IF(シングルトン== NULL){ 同期(Singleton.class){ IF(シングルトン== NULL){ シングルトン=新しいシングルトン(); } } } シングルトンを返します。 } }