樓上的同學(xué),我一開始也是這樣的想法,然后我百度了一篇2016-06-19的原創(chuàng)博文,里面有這樣一段補(bǔ)充:
(2)補(bǔ)充1
共享數(shù)據(jù)的訪問權(quán)限都必須定義為private。一般是考慮安全性,對數(shù)據(jù)提供保護(hù),可以通過set()方法賦值,再通過get()方法取值,這就是java封裝的思想。
Java中對共享數(shù)據(jù)操作的并發(fā)控制是采用加鎖技術(shù)。
Java中沒有提供檢測與避免死鎖的專門機(jī)制,但應(yīng)用程序員可以采用某些策略防止死鎖的發(fā)生。
final也可以保證內(nèi)存可見性。
博文的內(nèi)容和老師講的內(nèi)容幾乎是一樣的,不知道是不是同一個(gè)人
(2)補(bǔ)充1
共享數(shù)據(jù)的訪問權(quán)限都必須定義為private。一般是考慮安全性,對數(shù)據(jù)提供保護(hù),可以通過set()方法賦值,再通過get()方法取值,這就是java封裝的思想。
Java中對共享數(shù)據(jù)操作的并發(fā)控制是采用加鎖技術(shù)。
Java中沒有提供檢測與避免死鎖的專門機(jī)制,但應(yīng)用程序員可以采用某些策略防止死鎖的發(fā)生。
final也可以保證內(nèi)存可見性。
博文的內(nèi)容和老師講的內(nèi)容幾乎是一樣的,不知道是不是同一個(gè)人
2017-07-15
授人以魚不如授人以漁這句話完美的詮釋了Marton老師,很多視頻只會(huì)告訴你應(yīng)該這樣做而不說這樣做的原因?yàn)槭裁匆@樣做。也可能因?yàn)槲矣悬c(diǎn)笨笨的吧
2017-06-29
不會(huì)才學(xué),會(huì)了還在學(xué)毛線,有些人比別人早知道兩天就開始裝上了喘上了,很好奇你這樣在公司混的開嗎?
2017-05-08
感覺JMM的內(nèi)存模型和多核并行中UMA和NUMA有些相似之處。多核并行中,對于局部的緩存或者是chach中的更新策略有兩種:寫無效和寫更新,寫無效是一種懶加載,即當(dāng)一個(gè)核下的緩存被修改之后,在公共的內(nèi)存和其他的核的副本處打上數(shù)據(jù)失效的標(biāo)識(shí),如果其他的核在訪問自己的緩存的時(shí)候發(fā)現(xiàn)了這個(gè)標(biāo)識(shí),就要去主動(dòng)更新它。寫更新是指當(dāng)一個(gè)核修改了自己的緩存后,會(huì)及時(shí)的更新其他的副本。JMM的處理過程和寫更新實(shí)在太相似了!
http://www.jianshu.com/u/1f0067e24ff8 jvm和并發(fā)編程相關(guān)的blog
2017-04-27
0,6的結(jié)果,也可能是讀線程和寫線程start后,誰先被cpu調(diào)度引起的。好像只加synchronized不能控制0,6的結(jié)果。需要利用線程同步的知識(shí)來解決。而sleep那個(gè)利用主線程阻塞的方式,很危險(xiǎn)。那個(gè)sleep完全是經(jīng)驗(yàn)值。如果寫線程本身函數(shù)方法執(zhí)行時(shí)間用時(shí)超過sleep時(shí)間或用時(shí)不定,結(jié)果就又會(huì)亂了。
2017-04-23