开发者学堂课程【Java 面试疑难点串讲 1:面试技巧及语言基础:高并发处理包】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/24/detail/510
高并发处理包
内容介绍:
1. java.util.concurrent
2. ConcurrentMap
3. HashMap、Hashtable、 ConcurrentHashMap 有什么区别?
java.util.concurrent
java.util.concurrent 包从 JDK1.5 添加到 JDK 系统,主要目的是进行高并发访问的处理,通过这个程序实现的开发包都将基于线程池的高速操作完成。
四种线池:任意扩张的线程池、定长线程池、线程调度池、单线程池
在进行项目的开发过程中,如果某一个操作按照原始方式进行代码开发,则可以无限制的进行线程扩展
class Member{}
前提:公用信息需要进行重复使用.
ConcurrentMap
public interface ConcurrentHashMap<K,V> extends Map<K,V>
依然是Map 接口的子类,操作的方法还是以 Map 接口定义为主.
而对于接口有一个特点:不同的子类针对于同一方法有不同的实现。
HashMap、Hashtable、 ConcurrentHashMap有什么区别?
Ø Hashtable:进行公共数据保存的时候线程的安全性最高,因为同一时刻只允许一个线程进行操作。
Ø HashMap:所有的方法都属于异步处理,属于非线程安全,这样可以保证操作多个用户并发访问,但是不安全。
Ø ConcurrentHashMap:可以发现在进行数据存储或读取时并不是简单的按照 hashCode进行简单存放,而是经过了处理以保证高速的响应,速度快,但是需要有一个并发访问的Map高效数据。
例如:现在有一些内容需要临时记录在一个 Map 集合里面,这个内容有可能有几类用户去看:送餐员 客户 管理者。
这时该集合就一定是一个公共的集合,对于这样的公共集合数据,就必须进行快速响应而且还需要可以保存大量的内容。