對(duì)象是一個(gè)鎖標(biāo)志。按照先到先得的原則,如果有多個(gè)線(xiàn)程都會(huì)執(zhí)行代碼,并使用同一個(gè)對(duì)象作為鎖,
成都創(chuàng)新互聯(lián)專(zhuān)注于鹿邑網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供鹿邑營(yíng)銷(xiāo)型網(wǎng)站建設(shè),鹿邑網(wǎng)站制作、鹿邑網(wǎng)頁(yè)設(shè)計(jì)、鹿邑網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造鹿邑網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供鹿邑網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
synchronize(對(duì)象){ .... }
那么,先執(zhí)行這段代碼的那個(gè)線(xiàn)程,將會(huì)獲得這個(gè)對(duì)象鎖,而當(dāng)這個(gè)線(xiàn)程執(zhí)行這段代碼的時(shí)候,其他線(xiàn)程也是使用這個(gè)對(duì)象作為鎖的,就不能執(zhí)行這段代碼,知道最初得到這個(gè)鎖的線(xiàn)程運(yùn)行完這段代碼,然后再把鎖分配給下一個(gè)線(xiàn)程執(zhí)行。
1.凡使用synchronized標(biāo)記的方法,比如 public synchronized void func1() { .... },則同時(shí)只有一個(gè)線(xiàn)程能夠運(yùn)行這個(gè)方法。比如,線(xiàn)程1正在運(yùn)行func1,則其他線(xiàn)程需要運(yùn)行func1的話(huà),會(huì)卡住,等線(xiàn)程1運(yùn)行func1結(jié)束后,其他線(xiàn)程中,才會(huì)有一個(gè)幸運(yùn)兒成功爭(zhēng)取到運(yùn)行func1的資格,然后這個(gè)幸運(yùn)兒線(xiàn)程開(kāi)始運(yùn)行func1。沒(méi)有爭(zhēng)取到運(yùn)行資格的其他線(xiàn)程,會(huì)繼續(xù)等待。
2.你的例子中,被鎖定的是 方法 m1,而不是屬性b。所以,m1的synchronized加鎖操作,與b沒(méi)有半點(diǎn)毛錢(qián)關(guān)系。
3.要實(shí)現(xiàn)你的鎖b想法,其實(shí)很簡(jiǎn)單。去買(mǎi)一件貞操寶甲來(lái)就行了。開(kāi)玩笑,哈哈。要鎖b,把main方法里的tt.m2()修改為tt.m1()。
4.以后別用“b”作為變量,總覺(jué)得怪怪了。也許你現(xiàn)在還沒(méi)長(zhǎng)大,很單純。但大人的世界里,“b”是一種不文雅但又對(duì)人類(lèi)的未來(lái)有重要作用的東西。建議用cb來(lái)代替b。
能。java代碼右下角加鎖能運(yùn)行,是因?yàn)槎嗑€(xiàn)程共享的代碼區(qū)域需要上鎖,防止多線(xiàn)程同時(shí)訪(fǎng)問(wèn)代碼塊,造成線(xiàn)程安全問(wèn)題。
當(dāng)前名稱(chēng):java代碼加鎖,JAVA加鎖
本文路徑:http://jinyejixie.com/article10/hsiggo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、響應(yīng)式網(wǎng)站、網(wǎng)站導(dǎo)航、外貿(mào)建站、ChatGPT、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容