并發(fā)編程中主要的三個問題:安全性問題,活躍性問題和性能問題. 安全性問題 平時總是聽到這個方法不是線程安全的,這個類不是線程安全的.那么這個安全...
在破壞占用且等待條件的時候然走,如果轉(zhuǎn)出賬本和轉(zhuǎn)入賬本不滿足同時在文件架上這個條件,就用死循環(huán)的方式來循環(huán)等待 如果apply()操作耗時非常短,而...
前面講到使用Account.class作為互斥鎖,來解決銀行業(yè)務(wù)里面的轉(zhuǎn)賬問題,雖然這個方法不存在并發(fā)問題,但是所有賬戶的轉(zhuǎn)賬操作都是串行的.例...
受保護(hù)資源和鎖之間合理的關(guān)聯(lián)關(guān)系應(yīng)該是 N:1 的關(guān)系醉蚁,也就是說可以用一把鎖來保護(hù)多個資源拉背,但是不能用多把鎖來保護(hù)一個資源. 當(dāng)我們要保護(hù)多個資...
一個或多個操作在CPU執(zhí)行的過程中不被中斷的特性.稱為"原子性".理解這個特性有助于你分析并發(fā)編程 Bug 出現(xiàn)的原因住闯,例如利用它可以分析出 l...
什么是java內(nèi)存模型? 導(dǎo)致可見性的原因是緩存,導(dǎo)致有序性的原因是編譯優(yōu)化,那解決可見性,有序性最直接的辦法就是禁用緩存和編譯優(yōu)化,但是這樣問...
我們的CPU,內(nèi)存,I/O設(shè)備都在不斷迭代,不斷朝著更快的方向努力,但是,在這個快速發(fā)展的過程中,有一個核心矛盾一直存在,就是這三者的速度差異....
一.java內(nèi)存組成介紹:堆(Heap)和非堆(Non-heap)內(nèi)存 按照官方的說法:"Java虛擬機(jī)具有一個堆,堆是運行時數(shù)據(jù)區(qū)域,所有實例...
Tomcat 總體架構(gòu) 我們知道如果要設(shè)計一個系統(tǒng),首先是要了解需求,我們已經(jīng)了解了Tomcat要實現(xiàn)2個核心功能: 處理Socket連接,負(fù)責(zé)...