博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java开发基础【AtomicInteger】
阅读量:6996 次
发布时间:2019-06-27

本文共 1095 字,大约阅读时间需要 3 分钟。

hot3.png

本章主题:  针对多线程下的AtomicInteger做一个简要的回顾

1 简介:

        AtomicInteger , 一个可以提供原子操作的Integer的类,在java语言中,(++i)自增,(i++)自减操作在多线程的环境

之中并不是线程安全的。  通常的情况需要我们加上一个Synchronized关键字,而AtomicInteger则通过一种线程安全的加减操作接口:

2 代码示例:

package com.yinshuai.jdk;import java.util.concurrent.atomic.AtomicInteger;public class testAtomicInteger {	public static void main(String[] args) {		AtomicInteger ai = new AtomicInteger();		int i1 = ai.get();		v(i1);		int i2 = ai.getAndSet(5);		v(i2);		int i3 = ai.getAndDecrement();		v(i3);		int i4 = ai.get();		v(i4);		int i5 = ai.getAndIncrement();		v(i5);		int i6 = ai.getAndAdd(7);		v(i6);	}	static void v(int i) {		System.err.println(i);	}}

 其结果为:

  

005445

   在多线程环境下AtomicInteger使用比较频繁,其持有的方法如下所述

   

package test;import java.util.concurrent.atomic.AtomicInteger;/** * 来看AtomicInteger提供的接口。 //获取当前的值  public final int get()  //取当前的值,并设置新的值   public final int getAndSet(int newValue)  //获取当前的值,并自增   public final int getAndIncrement()   //获取当前的值,并自减  public final int getAndDecrement()  //获取当前的值,并加上预期的值  public final int getAndAdd(int delta)

    simpleTips

转载于:https://my.oschina.net/infiniteSpace/blog/303693

你可能感兴趣的文章