nanoTime對volatile 測試的一種寫法

2021-06-28 22:12:42 字數 1007 閱讀 4398

今天腦筋有點搭牢,想了半天才看出為什麼以下兩段**效果是相同的。。。

第一種好處是可以直接批量複製黏貼system.out,  不用改什麼東西

private static long i;

private volatile static long vt;

private static final int test_size = 10000000;

long time = system.nanotime();

for (int n = 0; n < test_size; n++)

vt = system.currenttimemillis();

system.out.println(-time + (time = system.nanotime()));

for (int n = 0; n < test_size; n++)

i = system.currenttimemillis();

system.out.println(-time + (time = system.nanotime()));

這種每次要在迴圈頭上重置nanotime

private static long i;

private volatile static long vt;

private static final int test_size = 10000000;

long time = system.nanotime();

for (int n = 0; n < test_size; n++)

system.out.println((system.nanotime() - time));

time = system.nanotime();

for (int n = 0; n < test_size; n++)

system.out.println((system.nanotime() - time));

nanoTime對volatile 測試的一種寫法

今天腦筋有點搭牢,想了半天才看出為什麼以下兩段 效果是相同的。第一種好處是可以直接批量複製黏貼system.out,不用改什麼東西 private static long i private volatile static long vt private static final int test ...

Linux驅動中的outb 與volatile

在linux的驅動程式中,都會使用大量的outb outw inb inw等等巨集來訪問硬體或暫存器。這些巨集的定義都在相應處理器體系下的include asm目錄下的io.h中定義。追究下去,這些巨集最終就是乙個volatile變數的的賦值 define arch putb v,a volatil...

DCL單例模式為什麼還需要加volatile

目錄 dcl是什麼 dcl存在什麼問題 volatile如何解決dcl存在的問題 dcl 即雙重驗證加鎖 什麼是雙重驗證加鎖,看下面 public class person public static person getinstance return person 不難看出,就是在單例模式下獲取例...