• 高并发-线程安全处理(1)-可变整数类之代码具体解释


    在处理线程安全时。首先须要引进  annotations 包

    我们在说线程安全事实上本质就是变量的原子性发生的状态变化。在不论什么系统,变量无处不在。因此,面对高并发多线程的业务代码处理就特别注意线程安全,也是我们非常多程序猿easy忽略的地方


    1》 常规非安全写法

    public class UnSynchronizedInteger {
        private int value;
        public synchronized int get() {
            return value;
        }
        public synchronized void set(int value) {
            this.value = value;
        }
    }

    点评:这样的写法。针对单线程还能够说的过去。但现实场景特别是核心业务代码时,不可能不涉及到高并发下的多线程处理。在这样的情况下,value值是可能被丢失的和失效的(这样的故障不会在常规的測试中出现,等出现了也非常难找到故障所在)。

    2》  线程安全正确的写法:

    @ThreadSafe
    public class SynchronizedInteger {
        @GuardedBy("this") private int value;

        public synchronized int get() {
            return value;
        }
        public synchronized void set(int value) {
            this.value = value;
        }
    }

  • 相关阅读:
    第十二周作业
    第十一周作业
    第十周作业
    第九周作业
    第八周作业
    bzoj3561DZY Loves Math VI
    bzoj3529[Sdoi2014]数表
    bzoj3309DZY Loves Math
    bzoj2823[AHOI2012]信号塔
    bzoj2301[HAOI2011]Problem b
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/6831662.html
Copyright © 2020-2023  润新知