首页 > 其他分享 >HashMap与ConcurrentHashMap

HashMap与ConcurrentHashMap

时间:2022-11-07 15:46:55浏览次数:55  
标签:ConcurrentHashMap HashMap 线程 资源 操作 服务端 客户端

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

相关文章

  • hashtable和hashmap的区别
    1、两者继承的类不同hashtable继承dictionary类,hashmap继承abstractHashMap类,2、两者提供的接口不同3、两者对null处理不同hashmap中key不能为null,但是value可以为null......
  • HashMap 的 7 种遍历方式与性能分析!
    参考来自于:HashMap的7种遍历方式与性能分析!方法之1:使用forEachpublicclassHashMapTest{publicstaticvoidmain(String[]args){//创建并赋值......
  • Java的HashSet和HashMap性能选项
    Java的HashSet和HashMap性能选项1.*HashSet和HashMap的性能选项对于HashSet及其子类而言,它们采用hash算法来决定集合中元素的存储位置,并通过hash算法来控制集合的大小;对......
  • 数学 动规 滑动窗口 HashMap里放数组 dfs 暴力
    1比特与2比特字符intn=bits.length;inti=0;因为,如果最后一个字符必须是一个一比特字符,那么,一定可以跳到最会一个位置。也就是n-1这个位置。所以不能遍......
  • JAVA并发容器-ConcurrentHashMap 1.7和1.8 源码解析
    HashMap是一个线程不安全的类,在并发情况下会产生很多问题,详情可以参考​​HashMap源码解析​​;HashTable是线程安全的类,但是它使用的是synchronized来保证线程安全,线程竞争......
  • HashMap 源码解析
    源码学习,边看源码边加注释,边debug,边理解。基本属性常量DEFAULT_INITIAL_CAPACITY:默认数组的初始容量-必须是2的幂。MAXIMUM_CAPACITY:数组的最大容量DEFAULT_LOAD_FACTOR:哈......
  • JAVA++:HashMap无序?TreeMap有序?
    书上说HashMap是无序的,TreeMap是有序的(有序无序是针对key的),但是实际去敲的时候发现不是这样,有时HashMap是有序的,有时TreeMap是无序的。于是就做了以下测试来探究:......
  • TreeMap,HashMap,LinkedHashMap区别
    TreeMap,HashMap,LinkedHashMap之间的区别和TreeSet,HashSet,LinkedHashSet之间的区别相似。TreeMap:内部排序,内部使用了红黑树排序HashMap:无序。LinkedHashMap:顺序存取,内部......
  • HashMap初始化容量
    HashMap初始化容量《阿里巴巴Java开发规约》中有提到:【推荐】集合初始化时,指定集合初始值大小。说明:HashMap使用如下构造方法进行初始化,如果暂时无法确定集合大小,那么指定......
  • 关于hashMap的容量为什么是2的幂次方数
    先看hashMap的构造方法publicHashMap(intinitialCapacity,floatloadFactor){if(initialCapacity<0)thrownewIllegalArgumentException(......