說明
1、程式執行到volatile變數的閱讀操作或寫作操作時,必須進行前一個操作的所有變更。後一個操作已經看到後一個操作還沒有進行。
2、指令優化時,不能將volatile變數存取的句子放在後面,也不能將volatile變數存取的句子放在前面。
一般的變數只能保證方法在執行過程中所有依賴授權結果的地方都能得到正確的結果,不能保證其順序與程式碼的執行順序一致。
實例
volatile boolean initialized = false; // 下面代码线程A中执行 // 读取配置信息,当读取完成后将initialized设置为true以通知其他线程配置可用 doSomethingReadConfg(); initialized = true; // 下面代码线程B中执行 // 等待initialized 为true,代表线程A已经把配置信息初始化完成 while (!initialized) { sleep(); } // 使用线程A初始化好的配置信息 doSomethingWithConfig();
#Java中的集合主要分為四類:
1、List列表:有序的,可重複的;
2、Queue隊列:有序,可重複的;
3、Set集合:不可重複;
4、 Map映射:無序,鍵唯一,值不唯一。
以上是Java中的volatile變數有哪些作用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!