第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

具有私有不可變對(duì)象的同步塊和同步方法的區(qū)別

具有私有不可變對(duì)象的同步塊和同步方法的區(qū)別

素胚勾勒不出你 2021-04-08 14:15:20
private final Object lockObject = new Object();public void getCount() {    synchronized( lockObject ) {        ...    }}為什么上面的代碼比下面的代碼更好:public void synchronized getCount() {      ...}我搜索并找到了如下所述的解釋。將其放在方法上意味著您正在使用對(duì)象本身的鎖來(lái)提供線(xiàn)程安全。通過(guò)這種機(jī)制,惡意代碼用戶(hù)也可能獲得對(duì)象上的鎖,并將其永久持有,從而有效地阻塞了其他線(xiàn)程。非惡意用戶(hù)可以無(wú)意中有效地執(zhí)行相同的操作。但是我無(wú)法完全理解這一點(diǎn)。惡意用戶(hù)如何永久持有鎖?任何人都可以用示例代碼進(jìn)行解釋?zhuān)宰C明上述情況是正確的嗎?
查看完整描述

2 回答

?
交互式愛(ài)情

TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊


public class Example {

    public void synchronized getCount() {

            ...

    }

}

它正在當(dāng)前對(duì)象上同步this。其他類(lèi)能夠獲取當(dāng)前對(duì)象的引用并將其用作監(jiān)視器鎖定:


public class OtherClass {


    public void otherMethod() {

        Example example = new Example();

        synchronized (example) {

            ...

        }

    }

}

例如,這可能會(huì)得到意外的結(jié)果,導(dǎo)致getCount在otherMethod執(zhí)行時(shí)被阻塞。


在第一種方法中,由于監(jiān)視器鎖lockObject是私有的,因此其他類(lèi)無(wú)法直接訪問(wèn)它,因此它比第二種方法更可取。


查看完整回答
反對(duì) 回復(fù) 2021-04-21
?
慕碼人2483693

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊

簡(jiǎn)而言之-

在方法級(jí)別使用鎖定時(shí),您將獲得已同步方法的完整類(lèi)的對(duì)象的鎖定。

假設(shè)是否有任何用戶(hù)附帶一些閃亮的代碼來(lái)執(zhí)行方法,直到Universe結(jié)束..這將導(dǎo)致其他線(xiàn)程因使用類(lèi)中的其他方法而被阻塞。

這是監(jiān)視對(duì)象和同步塊是首選方式的原因。


查看完整回答
反對(duì) 回復(fù) 2021-04-21
  • 2 回答
  • 0 關(guān)注
  • 135 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)