关于juc并发包
拆分为一下几个大的部分:
1:atomic包
基本类型的原子性封装,如AtomicInteger、AtomicBoolean、AtomicLong。等等
atomic是由volatile+CAS实现的
2:locks包
里面主要是重入锁和读写锁。
ReentrantLock、ReentrantReadWriteLock、ReadWriteLock、lock、Condition(线程通信)等等
3:线程池
Executors、ExecutorService、线程相关Callable、FutureTask(包装类)、Future(Callable包装运行返回的结果)
eg:
//ExecutorService pool = Executors.newCachedThreadPool();
CallableTest ct = new CalableTest();
FutureTask ft = new FutureTask(ct);
new Thread(ft).start();
//Future future = pool.submit(ct)
//System.out.println(future.get());
4:阻塞式集合类
BlockingDeque(双端队列)
BlockingQueue(队列)
ArrayBlockingQueue(数组队列)
实现原理(ReentrantLock+Condition)
等等
总之juc是为并发同步而设计,是为解决死锁设计。