i++和++i线程安全吗? (是否具有原子性)

2017-10-19  本文已影响0人  蝌蚪1573

"原子操作(atomic operation)是不需要synchronized",
答案是否定的,i++和++i都不具有原子性。
i++:先赋值再自加。
++i:先自加再赋值。
i++和++i的线程安全分为两种情况:
1、如果i是局部变量(在方法里定义的),那么是线程安全的。因为局部变量是线程私有的,别的线程访问不到,其实也可以说没有线程安不安全之说,因为别的线程对他造不成影响。
2、如果i是全局变量,则同一进程的不同线程都可能访问到该变量,因而是线程不安全的,
会产生脏读。

上一篇下一篇

猜你喜欢

热点阅读