`
junlas
  • 浏览: 64013 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

关于ConcurrentHashMap的一个问题

    博客分类:
  • java
 
阅读更多

比如我定义了一个私有成员:

 

private ConcurrentHashMap<String, MyObject> testList;

 

 

然后,我在函数里这样写:

 

MyObject mo = testList.get(id);

mo.setName("...");//关键是这句话,我在想,当有多个线程对testList有读写操作的同时,这里会不会数据不安全。

 

求教。

分享到:
评论
1 楼 waainli 2012-03-30  
这个类是线程安全的。类内部会自动帮我们维护。

相关推荐

    java源码剖析-ConcurrentHashMap

    `ConcurrentHashMap`是Java并发包(`java.util.concurrent`)中的一个重要组成部分,它提供了一个线程安全的哈希表实现。与传统的`Hashtable`相比,`ConcurrentHashMap`具有更高的并发性能,这主要得益于它的分段锁...

    ConcurrentHashMap源码剖析

    `ConcurrentHashMap`内部维护了一个`Segment`数组,每个`Segment`对象都是一个小型的`HashTable`。数组的长度通常是2的幂次方,以便于通过位运算快速定位到对应的`Segment`。 **2. HashEntry** `HashEntry`类表示...

    ConcurrentHashMap源码解析

    在Java并发编程中,ConcurrentHashMap是一个重要的并发集合。它是由Doug Lea在JSR166y中引入,并在Java 5中提供的一种线程安全的HashMap实现。与传统的HashMap相比,ConcurrentHashMap在多线程环境下具有更好的性能...

    java本地缓存ConcurrentHashMap

    java本地缓存ConcurrentHashMap

    Java并发编程笔记之ConcurrentHashMap原理探究.docx

    Java并发编程中的ConcurrentHashMap是HashMap的一个线程安全版本,设计目标是在高并发场景下提供高效的数据访问。相比HashTable,ConcurrentHashMap通过采用锁分离技术和更细粒度的锁定策略来提升性能。HashTable...

    JDK1.8中ConcurrentHashMap中computeIfAbsent死循环bug问题

    这是因为ConcurrentHashMap使用的是链表存储结构,当两个键的哈希值相同时,ConcurrentHashMap将会将这两个键存储在同一个链表中,从而导致死循环的问题。 这个问题的解决方案是使用JDK1.8中ConcurrentHashMap的另...

    JDK1.8中ConcurrentHashMap中computeIfAbsent死循环bug.docx

    在JDK 1.8版本中,`ConcurrentHashMap`中的`computeIfAbsent`方法存在一个潜在的死循环问题。这个bug主要出现在并发操作时,当`ConcurrentHashMap`需要进行扩容并且`computeIfAbsent`正在执行计算的过程中,可能会...

    ConcurrentHashMap的实现原理

    其中,Segment 分段锁是 ConcurrentHashMap 中的核心组件,它继承自 ReentrantLock,内部拥有一个 Entry 数组,数组中的每个元素又是一个链表。这种结构使得 ConcurrentHashMap能够实现真正的并发访问。 ...

    Java利用ConcurrentHashMap实现本地缓存demo

    Java利用ConcurrentHashMap实现本地缓存demo; 基本功能有缓存有效期、缓存最大数、缓存存入记录、清理线程、过期算法删除缓存、LRU算法删除、获取缓存值等功能。 复制到本地项目的时候,记得改包路径哦~

    ConcurrentHashmap源码

    源码分析见我博文:http://blog.csdn.net/wabiaozia/article/details/50684556

    ConcurrentHashMap之实现细节

    - **分段(Segment)的概念**:`ConcurrentHashMap`内部将散列表划分为多个段,每个段都是一个小的散列表,并且拥有自己的锁。这样,当不同的线程试图修改不同段时,它们可以同时进行而不会相互阻塞。例如,假设散...

    ConcurrentHashMap的实现原理(JDK1.7和JDK1.8).pdf

    `ConcurrentHashMap`是Java并发编程中非常重要的一个数据结构,它是线程安全的HashMap实现。在理解`ConcurrentHashMap`的实现原理之前,我们先来看看哈希表的基本概念。 哈希表是一种键值对存储的数据结构,通过键...

    高薪程序员面试题精讲系列49之说说ConcurrentHashMap#put方法的源码及数。。。.pdf,这是一份不错的文件

    ConcurrentHashMap是Java并发编程中的一个重要组件,用于解决高并发情况下的数据存储问题。在面试中,ConcurrentHashMap的底层原理、put方法的实现细节都是高频考点。本文将对ConcurrentHashMap#put方法的源码进行...

    ConcurrentHashMap思维导图完整版

    ConcurrentHashMap是J.U.C(java.util.concurrent包)的重要成员,它是HashMap的一个线程安全的、支持高效并发的版本。在默认理想状态下,ConcurrentHashMap可以支持16个线程执行并发写操作及任意数量线程的读操作。...

    java7-8中的 HashMap和ConcurrentHashMap全解析

    在Java 7中,`HashMap`内部由数组和链表构成,当多个键映射到同一个哈希桶时,会形成链表。如果链表过长,查询效率会降低,此时Java 8引入了红黑树优化,当链表长度达到8时,会转换为红黑树,进一步提高查找效率。 ...

    71-ConcurrentHashMap笔记1

    而JDK1.8之前的ConcurrentHashMap则引入了Segment分段锁,每个Segment相当于一个小的HashMap,这样可以在一定程度上提高并发性,但仍然存在锁粒度过粗的问题。 JDK1.8的ConcurrentHashMap改进了这一设计,它不再...

    java7-8中的 HashMap和ConcurrentHashMap全解析.pdf

    而ConcurrentHashMap是线程安全的HashMap实现,它在Java 7中采用了分段锁(Segment)的设计,每个Segment实际上是一个小型的HashMap,通过锁来确保并发安全。put过程包括: 1. 确保Segment初始化,如果需要则创建新...

Global site tag (gtag.js) - Google Analytics