美文网首页
20-08-18-原子操作-自增操作

20-08-18-原子操作-自增操作

作者: 喵喵不吃鱼哦 | 来源:发表于2020-08-18 14:16 被阅读0次

    JAVA学习记录-原子操作-自增操作

    //利用java并发原子类AtomicInteger创建一个对象,初始值为 0
        private AtomicInteger atomicInteger = new AtomicInteger(0);
    
        public final int getAndIncrement(){
            int current;//上一次的数值 初始默认 0
            int next;//返回值 初始默认 0
            do {
                current = this.atomicInteger.get();
                next = current >= 5 ? 0: current +1;
                System.out.println("*****current = " + current);
                System.out.println("*****next = " + next);
            }while(!this.atomicInteger.compareAndSet(current,next));
    //        this.atomicInteger.compareAndSet(current,next) 意思是判断current的数值是否等于内存中指定位置的值(this.),如果相等,
    //        返回true,并且将next复制到内存中替换原来的值,如果不等,则返回false,并且不会进行赋值替换
            System.out.println("******next = " + next);
            return next;
        }//以上方法用途是生成1,2,3,4,5,1,2,3,4,5,1,2,3,4,5......无论怎样都不会出现重复(每个12345可能顺序不同,可能是13245,但不会出现重复,为啥?因为原子)
    

    相关文章

      网友评论

          本文标题:20-08-18-原子操作-自增操作

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