简介
JDK 1.5 由大神 Doug Lea 推出并发包 java.util.concurrent 来简化并发处理。
接口
- Executor
- ExecutorService
- ScheduledExecutorService
- Future
- ThreadFactory
- BlockingQueue:阻塞队列
ConcurrentHashMap
- 多线程环境下,HashMap 进行put操作会引起死循环
- HashTable 容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常低下。因为当一个线程访问HashTable的同步方法,其他线程也访问HashTable的同步方法时,会进入阻塞或轮询状态。
- ConcurrentHashMap 分段锁技术可有效提升并发访问率
ConcurrentLinkedQueue
阻塞队列
阻塞队列常用于生产者和消费者的场景,生产者是向队列里添加元素的线程,消费者是从队列里取元素的线程。
阻塞队列
- ArrayBlockingQueue:基于数组实现的有界阻塞队列。
- LinkedBlockingQueue:基于链表实现的有界阻塞队列。
- PriorityBlockingQueue
- DelayQueue
- SynchronousQueue
- LinkedTransferQueue:基于链表组成的无界阻塞队列。
- LinkedBlockingDeque