版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010739551/article/details/89451835
一、原子操作类
原子操作类有三大类:(1)基本类型,有AtomicInteger、AtomicLong、AtomicBoolean,(2)数组类型,AtomcixxxArray,(3)引用类型,AtomicReference
二、例子
import java.util.concurrent.atomic.AtomicIntegerArray;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.AtomicReference;
public class AtomicTest {
public static void main(String[] args) {
System.out.println("=========AtomicLong==========");
//原子基本类型 AtomicBoolean AtomicInteger AtomicLong
AtomicLong aLong = new AtomicLong(3);
System.out.println(aLong.incrementAndGet());
System.out.println("========AtomicIntegerArray===========");
//原子数组 AtomicIntegerArray
int[] value = new int[]{1,2,3};
AtomicIntegerArray ai = new AtomicIntegerArray(value);
System.out.println(ai.getAndSet(0,10));
System.out.println(ai.get(0));
System.out.println("========AtomicReference===========");
//原子引用类型
AtomicReference<User> aUser = new AtomicReference<User>();
User user = new User("luke",10);
aUser.set(user);
User updateUser = new User("luke2",20);
User oldUser = aUser.getAndSet(updateUser);
System.out.println("old user: "+oldUser);
User newUser = aUser.get();
System.out.println("new user: "+newUser);
}
static class User {
private String name;
private Integer age;
public User(String name, Integer age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
}