Java并發編程是指在多線程環境下使用Java編程語言進行開發,其中最重要的特點之一就是原子性和可見性。原子性指的是對于一個線程對某個共享變量的操作,要么全部執行成功,要么不執行,不可能出現執行了一半的情況。而可見性指的是當一個線程對某個共享變量進行了修改,其他線程能夠立即看到這個變量的改變。
public class AtomicExample { private volatile int count = 0; public synchronized void increment() { count++; } public int getCount() { return count; } public static void main(String[] args) throws InterruptedException { final AtomicExample example = new AtomicExample(); for (int i = 0; i< 1000; i++) { new Thread(() ->example.increment()).start(); } Thread.sleep(1000); System.out.println("Count: " + example.getCount()); } }
在上面的代碼中,我們聲明了一個AtomicExample類,其中包含了一個volatile關鍵字的count變量和一個increment方法用于累加count變量的值。在main方法中,我們啟動了1000個線程,每個線程都會對count變量進行累加操作。如果沒有考慮原子性和可見性問題,最終輸出的結果可能小于1000。
但是由于我們使用了synchronized關鍵字對increment方法進行了同步,而且count變量加了volatile關鍵字,所以這個程序可以保證原子性和可見性。最終輸出的結果應該是1000。
上一篇php 計算時間
下一篇ajax 實現加載進度條