java四種鎖機(jī)制 什么時(shí)候需要分布式鎖?
什么時(shí)候需要分布式鎖?首先,我們需要知道在非分布式環(huán)境中,什么可以用鎖來解決?多線程環(huán)境,共享資源線程安全問題!此時(shí),共享資源通常在一臺(tái)機(jī)器的多線程中競(jìng)爭(zhēng)。從JAVA內(nèi)存模型的角度來看,我們可以通過鎖
什么時(shí)候需要分布式鎖?
首先,我們需要知道在非分布式環(huán)境中,什么可以用鎖來解決?
多線程環(huán)境,共享資源線程安全問題!此時(shí),共享資源通常在一臺(tái)機(jī)器的多線程中競(jìng)爭(zhēng)。從JAVA內(nèi)存模型的角度來看,我們可以通過鎖定對(duì)象、方法和代碼塊來避免共享資源的競(jìng)爭(zhēng)
!1,生成全局ID;
2,修改全局配置文件;
3,分布式服務(wù)中的seckill;
4,分布式環(huán)境中的重復(fù)提交;
1,使用數(shù)據(jù)庫的唯一主鍵實(shí)現(xiàn)鎖定
!2、使用redis指令:通常使用setnx方法,incr方法實(shí)現(xiàn)
3、使用zookeeper:使用API生成臨時(shí)節(jié)點(diǎn)實(shí)現(xiàn)鎖定
Java語言有什么優(yōu)勢(shì)?
一種語言的優(yōu)勢(shì)在于它與其他語言的比較。
Java:可以寫桌面,可以寫Android,可以寫服務(wù)器,可以寫企業(yè)業(yè)務(wù),可以寫互聯(lián)網(wǎng)業(yè)務(wù),基本不注重內(nèi)存,基本不注重操作系統(tǒng),封裝NiO,線程,鎖,隊(duì)列。。。。。。它基本上是開箱即用的,新手可以Google,從堆棧溢出復(fù)制就可以完成任務(wù)(雖然可能不太棒)
如果你想學(xué)習(xí)Java,可以關(guān)注私人聊天,我發(fā)“Java”來獲取介紹視頻。