zoukankan      html  css  js  c++  java
  • 高并发-线程安全处理(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;
        }
    }

  • 相关阅读:
    开发微信App支付
    SAP 数据类型
    SAP RFC函数
    单点登录
    集中式与分布式
    SAP 表类型
    独立软件供应商
    SAP 优缺点
    SAP 使用
    SAP 费用
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/6831662.html
Copyright © 2011-2022 走看看