Integer类 | AtomicInteger类 |
private static Integer count = 0; synchronized public static void increment() { count++; } 必须加上synchronized保证不会出现并发线程同时访问的情况 | private static AtomicInteger count = new AtomicInteger(0); public static void increment() { count.getAndIncrement(); } 不用加上synchronized |
AtomicInteger是一个提供原子操作的Integer类,通过线程安全的方式操作加减。 适合高并发情况下的使用。
AtomicInteger count = new AtomicInteger(23);
count.get();//获取当前的值
System.out.println(count);//23
count.getAndSet(32);//取当前的值,并设置新的值
System.out.println(count);//32
count.incrementAndGet();//获取当前的值32,并自增
System.out.println(count);//32
count.incrementAndGet();//获取当前的值22,并自增
System.out.println(count);//34
count.getAndDecrement();//获取当前的值34,并自减
System.out.println(count);//33
count.getAndDecrement();//获取当前的值33,并自减
System.out.println(count);//32
count.getAndAdd(100);//获取当前的值32,并加上预期的值100
System.out.println(count);//132