我所認識的鎖 總結

2021-10-03 11:37:02 字數 2136 閱讀 5780

1、公平鎖:多個執行緒之間可以按照執行緒申請鎖的順序獲取鎖;

2、非公平鎖:多個執行緒之間獲取鎖的順序不一定按照申請鎖的順序獲得;synchronized、reentrantlock預設是非公平鎖,後者可以通過構造引數獲取公平鎖。

3、可重入鎖又叫遞迴鎖:是指在乙個同步方法內部呼叫另外乙個同步方法時,獲得的鎖是同一把鎖,避免死鎖;舉例如下:

public class testlock 

public synchronized void world()

public static void main(string args) , string.valueof(i)).start();}}

}

列印結果:

0	 測試遞迴鎖

0 測試遞迴鎖2

6 測試遞迴鎖

6 測試遞迴鎖2

4 測試遞迴鎖

4 測試遞迴鎖2

5 測試遞迴鎖

5 測試遞迴鎖2

3 測試遞迴鎖

3 測試遞迴鎖2

2 測試遞迴鎖

2 測試遞迴鎖2

1 測試遞迴鎖

1 測試遞迴鎖2

9 測試遞迴鎖

9 測試遞迴鎖2

8 測試遞迴鎖

8 測試遞迴鎖2

7 測試遞迴鎖

7 測試遞迴鎖2

hello方法和world方法總是一起執行

4、自旋鎖:是指獲取鎖的執行緒不會立即阻塞,而是利用迴圈比較的方式去獲取鎖,好處就是減少上下文切換,缺點是迴圈比較會消耗cpu的效能,舉例如下:

public class testlock2 

system.out.println(thread.getname() + "\t come in");

}public void unlock()

public static void main(string args) catch (interruptedexception e) finally

}, string.valueof(i)).start();}}

}

列印結果:

0	 come in

0 come out

6 come in

6 come out

4 come in

4 come out

2 come in

2 come out

9 come in

9 come out

8 come in

8 come out

7 come in

7 come out

1 come in

1 come out

5 come in

5 come out

3 come in

3 come out

取得了獲取鎖,釋放鎖的效果

5、獨佔鎖:一次只能被乙個執行緒擁有;共享鎖:一次可以被多個執行緒共有;其中讀讀是共享,寫讀、讀寫、寫寫都互斥

舉例如下:

public class testlock3  catch (exception e)  finally 

return value;

}/**

* 寫互斥

** @param key

* @param value

* @return

*/public boolean setparams(string key, object value)

try catch (exception e) finally

return true;

}public static void main(string args) , string.valueof(i)).start();

}//先讓寫執行緒進行

try catch (interruptedexception e)

//多執行緒讀

for (int i = 0; i < 10; i++) , string.valueof(i)).start();}}

}

我所認識的ELK Stack

聽說elk stack最近很火,於是我抱著試試看的態度去市場了解了一番,發現現在很多公司都在使用這個東西處理日誌,而且成為實時日誌處理領域的第一選擇,於是我就去官網認真的學習了一番。elk stack這個東西是 elasticsearch logstash kibana 三個開源軟體的組合,在實時資...

我所認識的HTML

html hypetext mark language 超文字標記語言。如果把乙個web應用比喻為人,那麼html就是人體的骨骼。對於html的學習,我覺得要有以下幾個方面的認識和理解 用途 背景 規範制定和維護組織 語言本身 語法,api 其他一些常見問題 相關鏈結 起初,用來語義化描述科學文件,...

我所認識的父親們

一次去探望來京打工的老鄉,在他租住的僅有三四十平方公尺的簡陋寓所裡正在拉家常時,一位眉目慈善的中年男人熱情地跟我們打著招呼進來了,老鄉介紹說這是住在他隔壁的房客。隨即男人便坐下來和我們聊了起來。在閒聊中得知男人今年已經五十歲了,是南方人,也是在北京打工。我好奇地問他已是知天命的年紀了,為何還要在離家...