前言:關(guān)于synchronized、wait、notify已經(jīng)notifyAll大家應(yīng)該不陌生,現(xiàn)在我大致說一下我的理解。

一:synchronized

synchronized中文解釋是同步,那么什么是同步呢,解釋就是程序中用于控制不同線程間操作發(fā)生相對(duì)順序的機(jī)制,通俗來講就是2點(diǎn),第一要有多線程,第二當(dāng)多個(gè)線程同時(shí)競(jìng)爭(zhēng)某個(gè)資源的時(shí)候會(huì)有先后順序。在java中有三種寫synchronized的方式

  • 第一種:

    • 寫在普通方面的前面,這種表示對(duì)實(shí)例對(duì)象加鎖。

  • 第二種:

    • 寫在靜態(tài)方法前面,這種表示對(duì)類對(duì)象加鎖

  • 第三種:

    • 寫在代碼塊中,鎖是Synchonized括號(hào)里配置的對(duì)象(可能是實(shí)例對(duì)象,也可能是類對(duì)象)

總體說來就2種,一種就是鎖實(shí)例對(duì)象,一種鎖類對(duì)象。

鎖實(shí)例對(duì)象就是當(dāng)多個(gè)線程同時(shí)操作這個(gè)實(shí)例對(duì)象的時(shí)候必須先獲取鎖,如果無法獲取鎖,則必須處于等待狀態(tài),而和鎖類對(duì)象區(qū)別是,當(dāng)多個(gè)線程同時(shí)操作的時(shí)候,任何以這個(gè)類對(duì)象實(shí)例化的對(duì)象都要獲取鎖才能操作。舉個(gè)簡(jiǎn)單例子

比如一個(gè)群人去打飯,只要是人就必須排隊(duì)等待,一個(gè)個(gè)的打飯。不管是誰,但是吃完飯之后把盤子送回原地,但是這個(gè)時(shí)候不同的人可能吃飯快慢不同,但是肯定先吃飯后送盤子?,F(xiàn)在寫段代碼我們比對(duì)一下。

Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn),云培訓(xùn)培訓(xùn)

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式