一、前言

  對(duì)于并發(fā)編程而言,除了Thread以外,對(duì)Object對(duì)象的wati和notify對(duì)象也應(yīng)該深入了解其用法,雖然知識(shí)點(diǎn)不多。

二、線程安全基本知識(shí)

  首先應(yīng)該記住以下基本點(diǎn),先背下來也無妨:

  • 同一時(shí)間一個(gè)鎖只能被一個(gè)線程持有

  • 調(diào)用對(duì)象的wait()和notify()前必須持有它

三、wait()和notify()理解

3.1 wait()和notify()方法簡(jiǎn)介

  wait()和notify()都是Object的方法,可以認(rèn)為任意一個(gè)Object都是一種資源(或者資源的一個(gè)代表),當(dāng)多個(gè)線程對(duì)一個(gè)資源進(jìn)行操作時(shí),如果線程發(fā)現(xiàn)這個(gè)資源還沒有準(zhǔn)備好,它就可以在這個(gè)資源上進(jìn)行等待,即調(diào)用這個(gè)資源的wait()方法,如果有另外的線程經(jīng)過某些處理覺得這個(gè)資源可用了,會(huì)調(diào)用這個(gè)這個(gè)資源的notify()方法,告訴等待它的線程,這個(gè)資源可以用了。

  當(dāng)然不使用wait()和notify()方法也是可以的,可以用while()死循環(huán)來判斷,如下面的偽代碼: 

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷培訓(xùn)

class Resource{    static boolean canUse=false;
}while(!Resource.canUse){    //如果不可用,死循環(huán)在這里等待}//當(dāng)資源可以使用后,就會(huì)跳出循環(huán),往下執(zhí)行

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)
        
		<div   id=

網(wǎng)友評(píng)論