博學谷數(shù)據(jù)分析就業(yè)2023\/--》ccys1473
以下內(nèi)容忽略
5、static volatile + private + getInstance + instance + synchronized(對象鎖) 雙重檢查 (安全)
package Sigleton;
public class T05 {
? ?private static T05 t05;
? ?public static T05 getInstance(){
? ? ? ?if(t05 == null){
? ? ? ? ? ?synchronized (T05.class){
? ? ? ? ? ? ? ?try {
? ? ? ? ? ? ? ? ? ?Thread.sleep(2);
? ? ? ? ? ? ? ?}catch (Exception e){
? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?if(t05 == null){
? ? ? ? ? ? ? ? ? ?t05 = new T05();
? ? ? ? ? ? ? ?}
? ? ? ? ? ?}
? ? ? ?}
? ? ? ?return t05;
? ?}
? ?public static void main(String[] args){
? ? ? ?for(int i=0;i<20;i++){
? ? ? ? ? ?new Thread(new Runnable() {
? ? ? ? ? ? ? ?@Override
? ? ? ? ? ? ? ?public void run() {
? ? ? ? ? ? ? ? ? ?System.out.println(T05.getInstance().hashCode());
? ? ? ? ? ? ? ?}
? ? ? ? ? ?}).start();
? ? ? ?}
? ?}
}