成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

volatile變量 volatile類型變量有什么特點(diǎn)?

volatile類型變量有什么特點(diǎn)?volatile變量具有synchronized的可見(jiàn)性屬性,但不具有原子屬性。這意味著線程可以自動(dòng)發(fā)現(xiàn)volatile變量的最新值。Volatile變量可用于提供

volatile類型變量有什么特點(diǎn)?

volatile變量具有synchronized的可見(jiàn)性屬性,但不具有原子屬性。這意味著線程可以自動(dòng)發(fā)現(xiàn)volatile變量的最新值。Volatile變量可用于提供線程安全,但它們只能應(yīng)用于非常有限的一組用例:多個(gè)變量之間或變量的當(dāng)前值和修改值之間沒(méi)有約束。因此,僅使用volatile不足以實(shí)現(xiàn)計(jì)數(shù)器、互斥鎖或任何具有與多個(gè)變量相關(guān)聯(lián)的不變量的類(例如“start<=end”)。為了簡(jiǎn)單性或可伸縮性,您可能更喜歡可變變量而不是鎖。當(dāng)使用可變變量而不是鎖時(shí),有些習(xí)慣用法更易于編碼和閱讀。此外,volatile變量不會(huì)像鎖一樣導(dǎo)致線程阻塞,因此它們很少會(huì)導(dǎo)致可伸縮性問(wèn)題。在某些情況下,如果讀操作比寫操作大得多,那么volatile變量也可以提供比鎖更高的性能優(yōu)勢(shì)。如果正確使用volatile變量,則只能在有限的情況下使用volatile變量替換鎖。為了給易失性變量提供理想的線程安全,必須同時(shí)滿足以下兩個(gè)條件:●變量的寫操作不依賴于當(dāng)前值。變量不包括在與其他變量的不變量中。事實(shí)上,這些條件表明,可以寫入volatile變量的有效值獨(dú)立于任何程序的狀態(tài),包括變量的當(dāng)前狀態(tài)。第一個(gè)條件的限制阻止volatile變量用作線程安全計(jì)數(shù)器。雖然增量操作(x)看起來(lái)像一個(gè)單獨(dú)的操作,但它實(shí)際上是一個(gè)由讀-修改-寫操作序列組成的組合操作,必須以原子模式執(zhí)行,而volatile不能提供必需的原子特性。為了實(shí)現(xiàn)正確的操作,我們需要在操作過(guò)程中保持X的值不變,而volatile變量不能。(但是,如果將該值調(diào)整為僅從單個(gè)線程寫入,則可以忽略第一個(gè)條件。)大多數(shù)編程情況都會(huì)與這兩個(gè)條件中的一個(gè)發(fā)生沖突,因此volatile變量不像synchronized那樣普遍適用于線程安全。清單1顯示了一個(gè)非線程安全的數(shù)值范圍類。它包含一個(gè)不變量-下界總是小于或等于上界。

定義為volatile的變量有什么作用?

Volatile是一個(gè)類型限定符。聲明為volatile的變量表示它具有與優(yōu)化相關(guān)的特殊屬性。Volatile用于強(qiáng)制實(shí)現(xiàn)屏蔽可能的優(yōu)化。例如,對(duì)于具有內(nèi)存映射I/O的機(jī)器,可以將指向設(shè)備寄存器的指針聲明為指向volatile的指針,以防止編譯器通過(guò)