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

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

Java如何在臨界區(qū)中避免競(jìng)態(tài)條件

瀏覽:4日期:2022-08-22 15:59:08

當(dāng)兩個(gè)線程競(jìng)爭(zhēng)同一資源時(shí),如果對(duì)資源的訪問(wèn)順序敏感,就稱存在競(jìng)態(tài)條件。導(dǎo)致競(jìng)態(tài)條件發(fā)生的代碼區(qū)稱作臨界區(qū)。在臨界區(qū)中使用適當(dāng)?shù)耐骄涂梢员苊飧?jìng)態(tài)條件。

界區(qū)實(shí)現(xiàn)方法有兩種,一種是用synchronized,一種是用Lock顯式鎖實(shí)現(xiàn)。synchronized 關(guān)鍵字,代表這個(gè)方法加鎖,相當(dāng)于不管哪一個(gè)線程(例如線程A),運(yùn)行到這個(gè)方法時(shí),都要檢查有沒(méi)有其它線程B(或者C、 D等)正在用這個(gè)方法(或者該類的其他同步方法),有的話要等正在使用synchronized方法的線程B(或者C 、D)運(yùn)行完這個(gè)方法后再運(yùn)行此線程A,沒(méi)有的話,鎖定調(diào)用者,然后直接運(yùn)行。它包括兩種用法:synchronized 方法和 synchronized 塊。

Java語(yǔ)言的關(guān)鍵字,可用來(lái)給對(duì)象和方法或者代碼塊加鎖,當(dāng)它鎖定一個(gè)方法或者一個(gè)代碼塊的時(shí)候,同一時(shí)刻最多只有一個(gè)線程執(zhí)行這段代碼。當(dāng)兩個(gè)并發(fā)線程訪問(wèn)同一個(gè)對(duì)象object中的這個(gè)加鎖同步代碼塊時(shí),一個(gè)時(shí)間內(nèi)只能有一個(gè)線程得到執(zhí)行。另一個(gè)線程必須等待當(dāng)前線程執(zhí)行完這個(gè)代碼塊以后才能執(zhí)行該代碼塊。然而,當(dāng)一個(gè)線程訪問(wèn)object的一個(gè)加鎖代碼塊時(shí),另一個(gè)線程仍可以訪問(wèn)該object中的非加鎖代碼塊。

有臨界區(qū)是為了讓更多的其它線程能安全夠訪問(wèn)資源。

class Counter { protected long count = 0; public void add(long value) { this.count = this.count + value; } }

觀察線程A和B交錯(cuò)執(zhí)行會(huì)發(fā)生什么,兩個(gè)線程分別加了2和3到count變量上,兩個(gè)線程執(zhí)行結(jié)束后count變量的值應(yīng)該等于5。然而由于兩個(gè)線程是交叉執(zhí)行的,兩個(gè)線程從內(nèi)存中讀出的初始值都是0。然后各自加了2和3,并分別寫回內(nèi)存。最終的值并不是期望的5,而是最后寫回內(nèi)存的那個(gè)線程的值,上面例子中最后寫回內(nèi)存的是線程A,但實(shí)際中也可能是線程B。如果沒(méi)有采用合適的同步機(jī)制,線程間的交叉執(zhí)行情況就無(wú)法預(yù)料。

add()方法就是一個(gè)臨界區(qū),它會(huì)產(chǎn)生競(jìng)態(tài)條件。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 久久九九国产 | 欧美亚洲91| 国产v片在线播放免费观 | 婷婷亚洲久悠悠色在线播放 | 久久精品.com | 久久这里一区二区精品 | 国产美女精品一区二区三区 | 欧美精品在线一区 | 成人免费在线 | 亚洲精品第一区二区三区 | 午夜刺激爽爽视频免费观看 | 99热久久国产综合精品久久国产 | 99国内精品久久久久久久 | 97干干干 | 国产 magnet | 看黄网址 | 日韩一区二区三区四区 | 国产成人毛片毛片久久网 | 欧美一级淫片免费播放口 | 欧美成人aa| 成年人在线免费 | 久久久这里只有精品加勒比 | 99精品视频在线在线视频观看 | 久久国产精品久久国产片 | 国产精品久久精品 | 欧美一区二区三区免费不卡 | 久久精品一级 | 又摸又揉又黄又爽的视频 | 亚洲成人在线网 | 中文字幕日韩在线 | 日本免费一级 | 亚洲天堂一区二区 | 久久一区二区三区免费播放 | 久久亚洲精品视频 | 国产在线视频专区 | 91亚洲自偷手机在线观看 | 性8sex亚洲区入口 | 亚洲九九视频 | 国产精品成人一区二区不卡 | 免费在线一区二区三区 | 成人在线91 |