高併發下列舉單例執行緒安全?

2021-10-22 15:12:14 字數 684 閱讀 5252

先說結果,不是安全的

展示下列舉單例**:

package com.self.entity;

public enum logsingleton

public logsingleton add()

@override

public string tostring()

}

然後是呼叫方法:

package com.self.test;

import com.self.entity.logsingleton;

/** * @classname:enumsigletontest

* @description: todo

* @author: shen_jian

* @date: 2021-03-19 10:00

**/public class enumsigletontest

});thread.start();}}}

接下來是跑了多次的結果,我只貼出兩次比對結果:

不說執行緒執行順序,出現了兩次相同的數字,所以是執行緒不安全的。

如果說的不對還請指出交流。

高併發下實現執行緒安全的i 操作

這個比較簡單,就是在進行i 操作時,直接使用synchronized加鎖,也可以使用lock加鎖,本質都是一樣的 鎖原理不同 最終都是通過加鎖來保證多執行緒安全的。public class synchronized add public static void main string args th...

寫乙個高併發下面的單例模式 單例模式詳解

保證整個系統中乙個類只有乙個物件的例項,實現這種功能的方式就叫單例模式。1 單例模式節省公共資源 比如 大家都要喝水,但是沒必要每人家裡都打一口井是吧,通常的做法是整個村里打乙個井就夠了,大家都從這個井裡面打水喝。對應到我們計算機裡面,像日誌管理 印表機 資料庫連線池 應用配置。2 單例模式方便控制...

寫乙個高併發下面的單例模式 設計模式之單例模式

乙個類只允許建立唯一乙個物件 或者例項 那這個類就是乙個單例類,這種設計模式就叫作單例設計模式,簡稱單例模式。經典的設計模式有 23 種,如果隨便抓乙個程式設計師,讓他說一說最熟悉的 3 種設計模式,那其中肯定會包含今天要講的單例模式,單例模式主要用來確保某個型別的例項只能有乙個。比如手機上的藍芽之...