真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java進(jìn)階(8)-并發(fā)(多線程鎖類(lèi))

一共有3類(lèi)鎖 ,方法鎖、對(duì)象鎖、類(lèi)鎖。(方法鎖也是對(duì)象鎖的一種)
一、對(duì)象鎖
對(duì)象鎖
public class object {
private Lock lock = new ReentrantLock();//JavaSE1.5.新增了一個(gè)java.util.concurrent包來(lái)支持同步
public void method(){
synchronized(this){
System.out.println("我是對(duì)象鎖");
}
}
}

創(chuàng)新互聯(lián)是一家專(zhuān)業(yè)提供西安企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都網(wǎng)站制作、網(wǎng)站建設(shè)、HTML5、小程序制作等業(yè)務(wù)。10年已為西安眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。

public synchronized void method(){ //默認(rèn)使用類(lèi)實(shí)例this當(dāng)做鎖
System.out.println("我是對(duì)象鎖也是方法鎖");
}
這種機(jī)制確保了同一時(shí)刻對(duì)于每一個(gè)類(lèi)實(shí)例,其所有聲明為 synchronized 的成員函數(shù)中只有一個(gè)可執(zhí)行,從而有效避免了類(lèi)成員變量的訪問(wèn)沖突

二、類(lèi)鎖
一個(gè)class的靜態(tài)方法和靜態(tài)變量在內(nèi)存中只會(huì)加載和初始化一份,一旦一個(gè)靜態(tài)的方法被申明為synchronized,此類(lèi)的所有的實(shí)例化對(duì)象在調(diào)用該方法時(shí),共用同一把鎖,稱(chēng)之為類(lèi)鎖。
形式一:
public class object {
public static synchronized void method(){
System.out.println("我是第一種類(lèi)鎖");
}
}

形式二:
public class object {
public void method(){
synchronized (object.this) {
System.out.println("我是第二種類(lèi)鎖");
}
}
}

三、類(lèi)鎖
ReentrantLock
Lock.lock() 當(dāng)前線程嘗試獲取一個(gè)鎖,如果這個(gè)鎖獲取不到,則當(dāng)前線程會(huì)一直休眠直到獲取這個(gè)鎖.
Lock.lockInterruptibly() 讓當(dāng)前線程獲取一個(gè)鎖,如果鎖可以用,則直接返回.否則當(dāng)前線程會(huì)一直休眠直到一下兩種情況中的其中一個(gè)發(fā)生:
當(dāng)前線程獲取到這個(gè)鎖
其他線程打斷當(dāng)前線程, 打斷當(dāng)前線程獲取鎖的操作是允許的.
Lock.tryLock() 嘗試獲得一個(gè)鎖,如果鎖是可用的,則直接返回ture,并獲取到這個(gè)鎖.否則,直接返回false
Lock.tryLock(long time, TimeUnit unit) 在某一段時(shí)間內(nèi)嘗試獲取一個(gè)鎖,如果鎖可用,則直接返回true,否則等待超時(shí)返回fasle
Lock.unlock() 釋放鎖
Lock.newCondition()


網(wǎng)站欄目:Java進(jìn)階(8)-并發(fā)(多線程鎖類(lèi))
本文來(lái)源:http://weahome.cn/article/isjseg.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部