1、不太清楚你說(shuō)的boolean是原子性是什么意思,只知道他是java的基本類(lèi)型。剛搜索了下,你說(shuō)的原子性應(yīng)該是線(xiàn)程安全吧。boolean需要轉(zhuǎn)換成AtomicBoolean類(lèi)型才是原子性的。我剛搜了下一個(gè)類(lèi)似的文章你可以看下。

創(chuàng)新互聯(lián)建站專(zhuān)注于企業(yè)成都全網(wǎng)營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、賓陽(yáng)網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為賓陽(yáng)等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
2、這個(gè)問(wèn)題本身是錯(cuò)誤的觀點(diǎn),基本數(shù)據(jù)類(lèi)型是數(shù)據(jù)結(jié)構(gòu),原子性是操作定義,不是一個(gè)概念。原話(huà)是這樣的,基本數(shù)據(jù)類(lèi)型的賦值是原子性操作。這里還要排除long和double,或者標(biāo)明64bit操作系統(tǒng)。
3、這句話(huà)沒(méi)錯(cuò),因?yàn)榘朔N基本類(lèi)型都有對(duì)應(yīng)的包裝類(lèi)(int的包裝類(lèi)是Integer),包裝類(lèi)自然就是對(duì)象了。
4、此數(shù)據(jù)應(yīng)用于邏輯判斷。當(dāng)其他類(lèi)型數(shù)據(jù)轉(zhuǎn)換為邏輯型數(shù)據(jù)時(shí),0 會(huì)轉(zhuǎn)成 False,而其他的值則變成 True。當(dāng)邏輯型數(shù)據(jù)轉(zhuǎn)換為整型數(shù)據(jù)時(shí),F(xiàn)alse 成為 0,而 True 成為 -1。
5、也就是說(shuō), 要想并發(fā)程序正確地執(zhí)行,必須要保證原子性、可見(jiàn)性以及有序性。只要有一個(gè)沒(méi)有被保證,就有可能會(huì)導(dǎo)致程序運(yùn)行不正確。
6、基本類(lèi)型 1)Java中的數(shù)據(jù)類(lèi)型有八種,即基本類(lèi)型。
1、原子,故名思議,就是最小單位,不可分割。舉個(gè)例子轉(zhuǎn)賬。減少你的金額 增加被轉(zhuǎn)賬人的金額。這兩部就屬于一個(gè)原子操作,也叫作事務(wù)。想一下,如果減了你的錢(qián),沒(méi)有給被轉(zhuǎn)賬人增加錢(qián),你肯定不高興。
2、首先樓主你要知道原子操作是什么,我的理解是符合多線(xiàn)程原子性操作的操作就叫原子操作。原子是世界上的最小單位,具有不可分割性。比如 a=0;(a非long和double類(lèi)型)這個(gè)操作 是不可分割的,那么我們說(shuō)這個(gè)操作是原子操作。
3、原子操作是指一個(gè)不受其他操作影響的操作任務(wù)單元。原子操作是在多線(xiàn)程環(huán)境下避免數(shù)據(jù)不一致必須的手段。int++并不是一個(gè)原子操作,所以當(dāng)一個(gè)線(xiàn)程讀取它的值并加1時(shí),另外一個(gè)線(xiàn)程有可能會(huì)讀到之前的值,這就會(huì)引發(fā)錯(cuò)誤。
4、原子操作,就是不能被更高等級(jí)中斷搶奪優(yōu)先的操作。由于操作系統(tǒng)大部分時(shí)間處于開(kāi)中斷狀態(tài),所以,一個(gè)程序在執(zhí)行的時(shí)候可能被優(yōu)先級(jí)更高的線(xiàn)程中斷。
5、原子性(Atomicity)Java中,對(duì)基本數(shù)據(jù)類(lèi)型的讀取和賦值操作是原子性操作,所謂原子性操作就是指這些操作是不可中斷的,要做一定做完,要么就沒(méi)有執(zhí)行。
6、我們一起來(lái)聊一聊在Inter處理器和Java里是如何實(shí)現(xiàn)原子操作的。32位IA-32處理器使用基于 對(duì)緩存加鎖或總線(xiàn)加鎖 的方式來(lái)實(shí)現(xiàn)多處理器之間的原子操作 首先處理器會(huì)自動(dòng)保證基本的內(nèi)存操作的原子性。
原子操作(atomic operation)是不需要synchronized,所謂原子操作是指不會(huì)被線(xiàn)程調(diào)度機(jī)制打斷的操作;這種操作一旦開(kāi)始,就一直運(yùn)行到結(jié)束,中間不會(huì)有任何 context switch;java中一般事務(wù)管理里面用到原子操作。
原子是世界上的最小單位,具有不可分割性。比如 a=0;(a非long和double類(lèi)型)這個(gè)操作 是不可分割的,那么我們說(shuō)這個(gè)操作是原子操作。再比如:a++;這個(gè)操作實(shí)際是a = a + 1;是可分割的,所以他不是一個(gè)原子操作。
在Java中可以通過(guò)鎖和循環(huán)CAS的方式來(lái)實(shí)現(xiàn)原子操作。CAS操作——Compare & Set,或是 Compare & Swap,現(xiàn)在幾乎所有的CPU指令都支持CAS的原子操作。原子操作是指一個(gè)不受其他操作影響的操作任務(wù)單元。
從上面可以看出,Java內(nèi)存模型只保證了基本讀取和賦值是原子性操作, 如果要實(shí)現(xiàn)更大范圍操作的原子性,可以通過(guò)synchronized和Lock來(lái)實(shí)現(xiàn)。
原子性(Atomicity)Java中,對(duì)基本數(shù)據(jù)類(lèi)型的讀取和賦值操作是原子性操作,所謂原子性操作就是指這些操作是不可中斷的,要做一定做完,要么就沒(méi)有執(zhí)行。
比如,你在atm取款機(jī)取錢(qián),atm程序中吐錢(qián)跟在你賬戶(hù)上扣掉等額的數(shù)目就是一個(gè)原子性的操作,這兩個(gè)動(dòng)作一定要連在一起操作,要么都成功,要么都失敗,不可以被分開(kāi)只執(zhí)行某一部分。像這樣的操作,我們叫它原子操作。
新聞標(biāo)題:java代碼的原子性 java原子類(lèi)及原理
本文鏈接:http://chinadenli.net/article33/deiehps.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)站排名、品牌網(wǎng)站制作、網(wǎng)站營(yíng)銷(xiāo)、、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)