java中 基本類型簡單的賦值操作都屬於原子操作 比如 int x;x=10;
又比如y=x; x++;等操作其實是兩步操作,單步都是原子操作,合起來就不是了,再多線程高併發下就會出現問題
valatile關鍵字保證了可見性,被修改的值會被立即更新到內存,但是依然不能保證原子性.
保證原子性方法:
1.將x++封裝到方法,用synchronized 修飾該方法
2.還是將操作提到方法中 用lock
3. 變量用AtomicXXX修飾.
java中 基本類型簡單的賦值操作都屬於原子操作 比如 int x;x=10;
又比如y=x; x++;等操作其實是兩步操作,單步都是原子操作,合起來就不是了,再多線程高併發下就會出現問題
valatile關鍵字保證了可見性,被修改的值會被立即更新到內存,但是依然不能保證原子性.
保證原子性方法:
1.將x++封裝到方法,用synchronized 修飾該方法
2.還是將操作提到方法中 用lock
3. 變量用AtomicXXX修飾.
sessionStorage.av = JSON.stringify(data); var _data = JSON.parse(sessionStorage.av);
if裏面的返回值是true或是false,那麼只要括號裏隨便一個數都可以, javascript中以下值會判斷爲爲false: false undefined null 0 -0 NaN “”