国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java - 一個(gè)類的對(duì)象鎖只有一個(gè),類鎖呢?

瀏覽:123日期:2024-02-02 10:42:03

問題描述

一個(gè)類的對(duì)象鎖只有一個(gè),如果有幾個(gè)非靜態(tài)函數(shù)都是synchronized,在某一時(shí)刻只有一個(gè)線程能調(diào)用其中一個(gè)函數(shù)

假如一個(gè)類有幾個(gè)靜態(tài)函數(shù)是synchronized,在某一時(shí)刻只有一個(gè)線程能調(diào)用其中一個(gè)靜態(tài)函數(shù)嗎?也就是類鎖也只有一個(gè)嗎?

問題解答

回答1:

前面一種鎖的是實(shí)例對(duì)象,鎖定了當(dāng)前的那個(gè)對(duì)象,如果有多個(gè)實(shí)例對(duì)象,這些synchronized方法之間不是同步的。第二種鎖的是類對(duì)象,類對(duì)象就一個(gè),所以是同步的。

回答2:

public class Foo { synchronized void test1() {//to implements } void test2() {synchronized(this) { //to implements} } synchronized static void test3() {//to implements } static void test4() {synchronized(Foo.class) { //to implements} }}

如上代碼,test1方法相當(dāng)于test2,當(dāng)this是同一個(gè)對(duì)象時(shí),會(huì)發(fā)生阻塞。當(dāng)然,不同對(duì)象沒有關(guān)系,因?yàn)閠his不一樣。稱為對(duì)象級(jí)鎖。test3相當(dāng)于test4,這里是用class對(duì)象作為鎖,因?yàn)橐话闱闆r下一個(gè)類的類實(shí)例只有一個(gè),那么每次進(jìn)入這個(gè)方法都會(huì)鎖。稱為類級(jí)鎖。

回答3:

非靜態(tài)同步方法(A)用的鎖就是當(dāng)前實(shí)例對(duì)象本身,一個(gè)實(shí)例的A獲取鎖之后,該實(shí)例的其他A必須等待鎖的釋放,多個(gè)實(shí)例用的都是不同的鎖;

靜態(tài)同步方法(B)用的鎖是類對(duì)象本身,一旦一個(gè)B獲取鎖之后其他的B都必須等待釋放鎖,不管是一個(gè)實(shí)例還是多個(gè)實(shí)例;

另外 A和B之間用不同的鎖,所以不會(huì)有競(jìng)爭(zhēng)關(guān)系;

回答4:

Class類創(chuàng)建一個(gè)對(duì)象就是代表一個(gè)普通類,這時(shí)“類鎖”就是這個(gè)實(shí)例對(duì)象上的鎖

回答5:

你說的是“互斥鎖”的概念,針對(duì)synchronized修飾方法有兩種情況:

【非靜態(tài)方法】

當(dāng)一個(gè)方法被synchronized修飾后,鎖對(duì)象為當(dāng)前方法所屬對(duì)象,即方法中的this。

【靜態(tài)方法】

當(dāng)一個(gè)靜態(tài)方法被synchronized修飾后,該靜態(tài)方法上鎖的對(duì)象為當(dāng)前類對(duì)象(Class類的實(shí)例)。每個(gè)類都有唯一的一個(gè)類對(duì)象。獲取類對(duì)象的方式:類名.class。

而對(duì)于互斥的場(chǎng)景,需要理解兩點(diǎn)說明:

1、靜態(tài)方法與非靜態(tài)方法同時(shí)聲明了synchronized,他們之間是非互斥關(guān)系的。原因在于,靜態(tài)方法鎖的是類對(duì)象而非靜態(tài)方法鎖的是當(dāng)前方法所屬對(duì)象。

2、當(dāng)Synchronized修飾的是兩段不同的代碼,但是鎖對(duì)象相同時(shí),兩個(gè)線程分別調(diào)用者兩段代碼時(shí)就是互斥的

所以你說的“一時(shí)刻只有一個(gè)線程能調(diào)用其中一個(gè)函數(shù)”(即互斥),判斷條件就是鎖對(duì)象是否相同,與方法類型無(wú)關(guān)。

回答6:

對(duì)象方法的synchronized修飾,鎖為對(duì)象自身,也就是this;靜態(tài)方法的synchronized修飾,鎖為Class對(duì)象自身,也就是由類加載器創(chuàng)建的類對(duì)象;

標(biāo)簽: java
主站蜘蛛池模板: 成人黄18免费网站 | 黄色天堂在线 | 亚洲精品国产啊女成拍色拍 | 中国美女一级片 | 新婚第一次一级毛片 | 色综合久久88中文字幕 | 国产精品黄在线观看免费软件 | 永久黄网站色视频免费网站 | 成人日韩在线观看 | 欧美一级特黄特黄做受 | 成人精品视频网站 | 成 人 黄 色 视频 免费观看 | ffee性xxⅹ另类老妇hd | 91久久亚洲国产成人精品性色 | 一级做a爰片性色毛片视频图片 | 久久精品免费一区二区视 | 成年男女免费视频网站 | 一级做a爰片久久毛片16 | 国产成人精品一区二区三区 | 精品国产免费第一区二区 | 欧美一级aa毛片禁片 | 日韩三级黄色片 | 伊人色综合久久天天网蜜月 | 男人的天堂在线观看视频不卡 | 国内精品免费一区二区观看 | 男女视频在线观看免费 | 日韩在线手机看片免费看 | 农村寡妇一级毛片免费看视频 | 欧美久色| 国产三级手机在线 | 人碰人碰人成人免费视频 | 一级毛片在线免费视频 | 国产精品成人免费综合 | 超级香蕉97视频在线观看一区 | 国产精品久久久久久一区二区三区 | 国产三级在线观看免费 | 国产精品久久久天天影视香蕉 | 国产91久久精品一区二区 | 岛国在线免费观看 | 三级视频网站在线观看 | 贵州美女一级纯黄大片 |