HashMap与ConcurrentHashMap
今天查看 webSocket 结合 redis 写的消息订阅与发布的服务端代码时,发现用ConcurrentHashMap存储session对象,
由此引发一些思考;
1、常用的hashmap和ConcurrentHashMap有什么不同?HashMap不支持并发操作,没有同步方法,ConcurrentHashMap支持并发操作,其它请自行百度
2、服务端可以存储客户端session对象,猜想:服务端开启后,启动了一个进程,客户端对服务端的访问,启动了一个线程,在一个进程内存在的线程是可以相互干涉的,利用相关技术,A客户端可以对B客户端进行不安全的操作,或者是对B输入输出对象进行二次包装
3、怎样使得服务端分配给客户端的线程是独立的,不被其他线程干扰,提高数据可靠性、安全性
4、客户端登陆服务端获取对象,当不是一个线程对同一个数据对象操作的时候,如何保证各客户端线程获取的数据的准确性
5、锁的出现,有限的资源,无限的应用,怎样合理分配资源,保证应用数据的时效性
6、若资源大于应用满足,若资源小于应用会出现延迟等待,限制用户数,用队列等待访问
7、看的出资源就相当一个 想用就得等上一个用完 复制出别的供下一个操作 但不是这个 从操作粒度上来看某一时刻只能由一个对其操作
8、某一时刻只能由一个对其操作 ,想要获取当下资源的状况,对其进行人工管理,也会纳入一个线程获取当前资源的情况,但是需要等待前面的线程操作完该资源
9、优先级的出现,对资源进行管理的线程,优先级一定高于其他线程,启用了就需要优先执行,保证资源状态数据的时效性
10、从非粒度的角度考虑,避免大量资源在等待操作这个数据,设置每次访问的数量,而且每次访问都会进行相同的操作,简化这些操作,可以培养“专业”连接
11、连接池的出现,访问数据的线程来了,直接通过专业连接进行操作对象,没有专业连接时就等待
12、看的出对资源进行了规划管理,提高了应用性,细水长流,方便管理
13、联系生活:对某一景观的某一风景点观赏 限制游客访问 导游从入门处接手游客访问风景点 较为片面的概述
14、相较于现实生活中的复杂,程序显得这么单调呢,对景点有小贩有维护有别的意外,而程序中单调只有线性的结果,这也是作为生产工具的使用
15、智能的、人性化的程序应该多元化,复杂化,衍生不同的结果,但这会和生产工具的定义相违背,这是一个哲学问题。
标签:ConcurrentHashMap,HashMap,线程,资源,操作,服务端,客户端 From: https://www.cnblogs.com/subtlman/p/16866143.html