美文网首页
i++和++i线程安全吗? (是否具有原子性)

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

作者: 蝌蚪1573 | 来源:发表于2017-10-19 00:40 被阅读0次

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

    相关文章

      网友评论

          本文标题:i++和++i线程安全吗? (是否具有原子性)

          本文链接:https://www.haomeiwen.com/subject/zdmyuxtx.html