創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!
創(chuàng)新互聯(lián)是一家專注于做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),余杭網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:余杭等地區(qū)。余杭做網(wǎng)站價(jià)格咨詢:13518219792本篇文章給大家分享的是有關(guān)如何解決同步代碼塊的數(shù)據(jù)安全問題,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
一、同步代碼塊
synchronized關(guān)鍵字可以用于方法中的某個(gè)區(qū)塊中,表示只對(duì)這個(gè)區(qū)塊這個(gè)區(qū)塊的資源實(shí)現(xiàn)互斥訪問
賣票案例出現(xiàn)了線程安全問題
賣出了不存在的票和重復(fù)的票
解決線程安全問題的一種方案:使用同步代碼塊
格式:
synchronized(同步鎖){
需要同步操作的代碼
}
注意事項(xiàng):
1.通過代碼塊中的鎖對(duì)象,可以使用任意的對(duì)象
2.但是必須保證多個(gè)線程使用的鎖對(duì)象是同一個(gè)
3.鎖對(duì)象作用:把同步代碼塊鎖住,只讓一個(gè)線程在同步代碼塊中執(zhí)行
測(cè)試類:
二、同步技術(shù)的原理
使用了一個(gè)鎖對(duì)象,這個(gè)鎖對(duì)象叫同步鎖,也叫對(duì)象鎖,也叫對(duì)象監(jiān)視器
3個(gè)線程一起搶奪cpu的執(zhí)行權(quán),誰搶到了誰執(zhí)行run方法進(jìn)行賣票
t0搶到了cpu的執(zhí)行權(quán),執(zhí)行run方法,遇到synchronized代碼塊
這時(shí)t0會(huì)檢查synchronized代碼塊是否有鎖對(duì)象
發(fā)現(xiàn)有,就會(huì)獲取到鎖對(duì)象,進(jìn)入到同步中執(zhí)行
t1搶到了cpu的執(zhí)行權(quán),執(zhí)行run方法,遇到synchronized代碼塊
這時(shí)t1會(huì)檢查synchronized代碼塊是否有鎖對(duì)象
發(fā)現(xiàn)沒有,t1就進(jìn)入到阻塞狀態(tài),會(huì)一直等待t0線程歸還鎖對(duì)象
一直到t0線程執(zhí)行完同步中的代碼,會(huì)把鎖對(duì)象歸還給同步代碼塊
t1才能獲取到鎖對(duì)象進(jìn)入到同步中執(zhí)行
以上就是如何解決同步代碼塊的數(shù)據(jù)安全問題,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。