成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談Java的volatile

開發 后端
就象大家更熟悉的const一樣,volatile是一個類型修飾符(type specifier)。它是被設計用來修飾被不同線程訪問和修改的變量。如果沒有volatile,基本上會導致這樣的結果:要么無法編寫多線程程序,要么編譯器失去大量優化的機會。本文主要介紹java中的volatile,一起來看。

Java 語言中的 volatile 變量可以被看作是一種 “程度較輕的 synchronized”;與 synchronized 塊相比,volatile 變量所需的編碼較少,并且運行時開銷也較少,但是它所能實現的功能也僅是 synchronized 的一部分。

我們知道,在Java中設置變量值的操作,除了long和double類型的變量外都是原子操作,也就是說,對于變量值的簡單讀寫操作沒有必要進行同步。

這在JVM 1.2之前,Java的內存模型實現總是從主存讀取變量,是不需要進行特別的注意的。而隨著JVM的成熟和優化,現在在多線程環境下volatile關鍵字的使用變得非常重要。

在當前的Java內存模型下,線程可以把變量保存在本地內存(比如機器的寄存器)中,而不是直接在主存中進行讀寫。這就可能造成一個線程在主存中修改了一個變量的值,而另外一個線程還繼續使用它在寄存器中的變量值的拷貝,造成數據的不一致。

要解決這個問題,只需要像在本程序中的這樣,把該變量聲明為volatile(不穩定的)即可,這就指示JVM,這個變量是不穩定的,每次使用它都到主存中進行讀取。一般說來,多任務環境下各任務間共享的標志都應該加volatile修飾。

Volatile修飾的成員變量在每次被線程訪問時,都強迫從共享內存中重讀該成員變量的值。而且,當成員變量發生變化時,強迫線程將變化值回寫到共享內存。這樣在任何時刻,兩個不同的線程總是看到某個成員變量的同一個值。

Java語言規范中指出:為了獲得最佳速度,允許線程保存共享成員變量的私有拷貝,而且只當線程進入或者離開同步代碼塊時才與共享成員變量的原始值對比。

這樣當多個線程同時與某個對象交互時,就必須要注意到要讓線程及時的得到共享成員變量的變化。

而volatile關鍵字就是提示VM:對于這個成員變量不能保存它的私有拷貝,而應直接與共享成員變量交互。

使用建議:在兩個或者更多的線程訪問的成員變量上使用volatile。當要訪問的變量已在synchronized代碼塊中,或者為常量時,不必使用。

由于使用屏蔽掉了VM中必要的代碼優化,所以在效率上比較低,因此一定在必要時才使用此關鍵字。

【編輯推薦】

  1. 初學Java多線程:慎重使用volatile關鍵字
  2. 2.5.4 const和volatile
  3. 2.4.7 __volatile__
  4. 2.4.6 volatile
  5. 5.2.11 表的volatile特性
責任編輯:于鐵 來源: 考試大
相關推薦

2023-07-11 08:43:43

volatileJava內存

2023-10-11 08:29:54

volatileJava原子性

2023-08-26 11:32:07

2019-09-04 14:14:52

Java編程數據

2024-12-23 15:05:29

2009-05-05 09:46:18

Java編碼理論字符

2015-09-01 15:12:45

JavaHashMap那點事

2018-12-18 14:08:01

Java內存volatile

2021-11-26 07:31:43

Java反射程序

2009-06-18 13:32:39

Java線程生命周期

2017-08-04 11:41:53

Javathreadpool框架

2017-08-07 20:50:27

JavaForkJoin

2021-01-15 05:12:14

Java并發樂觀鎖

2011-11-28 09:25:36

Java輸入輸出

2011-03-09 09:44:15

JavaMina框架

2013-08-07 10:46:07

Java并發編程

2025-06-13 08:00:00

Java并發編程volatile

2018-01-19 10:43:06

Java面試官volatile關鍵字

2021-02-05 11:35:03

原子類數值變量

2012-03-22 09:31:14

Java
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费高清av | av在线黄 | 一区二区三区在线观看视频 | 午夜欧美a级理论片915影院 | 精品一区二区三区入口 | 亚洲精品永久免费 | 波霸ol一区二区 | 亚洲国产一区二区视频 | 九色在线观看 | 亚洲成人免费电影 | 在线观看中文字幕 | 国产一区二区三区视频 | 在线播放中文字幕 | 男人的天堂久久 | 精品国产一区二区三区久久久四川 | 成人精品毛片国产亚洲av十九禁 | 五月天国产在线 | 一级黄色毛片a | 91高清在线观看 | 综合亚洲视频 | 午夜视频在线视频 | 国产精品视频一区二区三区四蜜臂 | 中文字幕日韩欧美一区二区三区 | 日韩精品一区二区三区 | 欧美激情一区二区三区 | 91久久久久久 | 午夜精品久久 | 男人久久天堂 | 国产三级精品视频 | 欧美精品成人影院 | 久久精品国产v日韩v亚洲 | 免费一区在线观看 | 九九九久久国产免费 | 国产精品成人一区二区三区 | 99热视 | 很黄很污的网站 | 国产精品久久久久久久久久 | aaaa网站 | 久久精品免费观看 | 国产精品久久久久aaaa | 亚洲午夜av久久乱码 |