前言:關(guān)于synchronized、wait、notify已經(jīng)notifyAll大家應(yīng)該不陌生,現(xiàn)在我大致說一下我的理解。
一:synchronized
synchronized中文解釋是同步,那么什么是同步呢,解釋就是程序中用于控制不同線程間操作發(fā)生相對順序的機(jī)制,通俗來講就是2點(diǎn),第一要有多線程,第二當(dāng)多個(gè)線程同時(shí)競爭某個(gè)資源的時(shí)候會(huì)有先后順序。在java中有三種寫synchronized的方式
第一種:
寫在普通方法的前面,這種表示對實(shí)例對象加鎖。
第二種:
寫在靜態(tài)方法前面,這種表示對類對象加鎖
第三種:
寫在代碼塊中,鎖是Synchonized括號里配置的對象(可能是實(shí)例對象,也可能是類對象)
總體說來就2種,一種就是鎖實(shí)例對象,一種鎖類對象。
鎖實(shí)例對象就是當(dāng)多個(gè)線程同時(shí)操作這個(gè)實(shí)例對象的時(shí)候必須先獲取鎖,如果無法獲取鎖,則必須處于等待狀態(tài),而和鎖類對象區(qū)別是,當(dāng)多個(gè)線程同時(shí)操作的時(shí)候,任何以這個(gè)類對象實(shí)例化的對象都要獲取鎖才能操作。舉個(gè)簡單例子
比如一個(gè)群人去打飯,只要是人就必須排隊(duì)等待,一個(gè)個(gè)的打飯。不管是誰,但是吃完飯之后把盤子送回原地,但是這個(gè)時(shí)候不同的人可能吃飯快慢不同,但是肯定先吃飯后送盤子。現(xiàn)在寫段代碼我們比對一下。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26