java開發基礎【AtomicInteger】


本章主題:  針對多線程下的AtomicInteger作一個簡要的回顧java



1 簡介:安全

        AtomicInteger , 一個能夠提供原子操做的Integer的類,在java語言中,(++i)自增,(i++)自減操做在多線程的環境
多線程

之中並非線程安全的。  一般的狀況須要咱們加上一個Synchronized關鍵字,而AtomicInteger則經過一種線程安全的加減操做接口:atom



2 代碼示例:spa

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);
	}

}

 其結果爲:
線程

  

0
0
5
4
4
5


   在多線程環境下AtomicInteger使用比較頻繁,其持有的方法以下所述code

   

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接口

相關文章
相關標籤/搜索