我和單例的愛恨情仇

2021-08-30 20:07:56 字數 1029 閱讀 7878

你是不是曾經有過這樣的經歷,在寫乙個名叫getinstance()方法時,特別計較寫在方法前面的那個可惡的synchronized,讓你無法下手,至少猶豫10秒鐘,哈哈。

不管你們有沒有過,我每次寫單例時,都為這個synchronized搞的痛苦不堪,於是我痛下決心,在以後我的**裡不會再出現延時載入這一概念,我要的只是初始化而已,即時載入又有何妨呢?

只是下個決心而已,緣何要加個痛字,各位看管,是不是有點過分了。

其實不然,且聽我慢慢道來。

我第一次與單例相識,那是乙個深秋的深夜,那天我第一次聽說了《設計模式》,我用一顆年輕的心開啟了xx**的某某網頁,輸入單例模式並敲下回車鍵,那一瞬間我的第一感覺就是愚昧與無知,當我還不懂得什麼事單例的時候,竟然有數以萬計的it頭腦已將它擁入懷抱,而我卻在一秒鐘前還沾沾自喜,以為發現了個桃花源。

於是乎,我用虔誠和渴求的心靈仔細的閱讀了其中一篇,當時我覺得我就是未來的架構師,設計模式這麼時髦的東西,我竟然一遍就看懂了,真是不可思議。

再後來,我的**裡到處是單例,哎,現在想來真是亂套。

直到有一天,我認識了多執行緒,我了解了生產者和消費者的多執行緒舉例,並且也愛上了synchronized這個讓我傷痛的詞彙,畢竟只有它才能讓我有一種100%控制程式執行的感性認識。

於是這個樣子,我就乙隻腳踩了2只船,同時愛上了單例和synchronized,雖說以前學習單例的時候看到過synchronized,但是因為它華而不實的外表(單詞太長了,記不住,當時不覺得有用)而被我跳過,看來她屬於耐看型。

因為愛上了synchronized,所以更了解synchronized,當我再次同時寫下單例和synchronized時,心中不禁感慨萬分,我做了乙個假設,如果乙個web程式同時有1w個執行緒訪問我寫的單例時,那將是多麼龐大而華麗的乙個陣容,它們將排隊,乙個乙個走過我的synchronized,想到這裡我不禁為排在最後的這些執行緒捏了一把冷汗,這要排多久!如此一來我深愛的synchronized是多麼的嚴厲和霸道啊。

於是我的同情心和愛心同時跑出來,到底該不該捨棄synchronized的呢?真是應驗一句話:因為愛所以痛。杯具。

待續......

strlen和sizeof的愛恨情仇

在平時寫 的時候,我們經常會用sizeof和strlen來求取陣列和字串的長度,這兩個在功能上比較相似,但在原理上是不一樣的。strlen sizeof 陣列做 sizeof 的引數不退化,但傳遞給strlen就退化為指標了。陣列作為引數傳給函式時傳的是指標而不是陣列,傳遞的是陣列的首位址。下面舉個...

while 和 do while 的愛恨情仇

一 迴圈 重複得做某一件事情 while 迴圈結構 語法 while 迴圈條件 特點 先判斷迴圈條件,再執行迴圈操作 案例 實現列印50份試卷 public class demo01 流程 先判斷迴圈條件是否為真,如果為真則執行迴圈操作,然後改變迴圈條件i的值進入下一次迴圈 如果迴圈條件為假則不會執...

sizeof 和位元組計算 的愛恨情仇

在學習中經常遇到 byte的處理 甚至關於bit的處理,還有涉及到結構體強制轉化,分析位元組占用記憶體的問題,每次分析重頭再來,耗費時間,於是將 位元組的大小 整理歸納 用法 sizeof 型別說明符,陣列名或表示式 sizeof 變數名 64bit 作業系統 sizeof 計算 intmain i...