package java.util.concurrent;

/**
 * 该包中包含的类提供了对并发编程的支持。这些类是Java SE 5和6的一部分,以及Java SE 7中的一些补充。
 * 
 * 该包中包含的类支持线程池、异步 IO 和基于消息的异步通信。
 *
 * 该包包含的类通常比在 java.lang.Thread 中提供的类更加高级。例如, Executor 框架提供了一种将执行策略与任务分离的方法,
 * 可以使用线程池以一种灵活的方式执行大量任务。Executors 类提供了工厂和工具方法来创建和配置线程池和执行器。
 *
 * 在此包中,还提供了 BlockingQueue 接口和其实现类,这是一种用于在多线程程序中进行通信的基本方法。
 *
 * 此外,还提供了 CountDownLatch、Semaphore、CyclicBarrier 和 Exchanger 等同步工具,以及用于原子更新变量的类。
 * 
 * 参考资料:
 * 
 * - [Java 并发编程实战](https://book.douban.com/subject/10484692/)
 * - [Java Concurrency in Practice](https://jcip.net/)
 * - [Java 并发编程网](http://ifeve.com/)
 * - [JUC (Java Util Concurrent) 包详解](https://www.cnblogs.com/dolphin0520/p/3920373.html)
 * - [Java并发包中的几个类](https://zhuanlan.zhihu.com/p/364484136)
 */

import java.util.concurrent.atomic.AtomicInteger;

public class ConcurrentUtils {
    private static AtomicInteger atomicInt = new AtomicInteger(0);

    public static void main(String[] args) {
        // 原子更新基本类型
        int atomicValue = atomicInt.getAndIncrement();
        System.out.println("atomicInt:" + atomicInt + ", atomicValue:" + atomicValue);
    }
}