Java多线程之原子操作类

版权声明:本文为博主原创文章,未经博主允许不得转载。 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 +
                    '}';
        }

    }

}

三、结果

猜你喜欢

转载自blog.csdn.net/u010739551/article/details/89451835