ConcurrentHashMap中重要的方法:
1. V get(Object key)
先从segments数组中取出对应的段Segment<K,V>,然后再取到对应key的value值。
2. V put(K key, V value)
先从segments数组中取出对应的段Segment<K,V>,然后对key赋值。当value为null时抛出NullPointerException异常
3. V remove(Object key)
先从segments数组中取出对应的段Segment<K,V>,然后再执行删除操作。
4. boolean containsValue(Object value)
首先尝试在不锁整个map的情况下进行查询,如果在查询过程中没有出现结构变化则直接返回结果,如果有结构变化则在尝试指定的RETRIES_BEFORE_LOCK次数后,锁定整个map进行查询。其中利用了Segment中的modCount来检测是否有结构变化。
5. void clear()
对每个段Segment执行clear()操作。
6. int size()
首先尝试在不锁整个map的情况下进行统计大小,如果在统计过程中没有出现结构变化则直接返回结果,如果有结构变化则在尝试指定的RETRIES_BEFORE_LOCK次数后,锁定整个map进行统计。其中利用了Segment中的modCount来检测是否有结构变化。
分享到:
相关推荐
### Java.util.concurrent ...本文详细介绍了 `java.util.concurrent` 包中 `ConcurrentHashMap` 和 `CopyOnWriteArrayList` 的使用和特点,对于希望深入了解 Java 并发编程的开发者来说是一篇非常有价值的参考文献。
#### 二、`java.util.concurrent` 概览 `java.util.concurrent` 包提供了多种工具和框架,使得开发者能够更加方便地编写多线程程序。其中包括但不限于线程池(`ExecutorService`)、阻塞队列(`BlockingQueue`)、...
Java.util.concurrent(JUC)是Java平台中的一个核心包,专门用于处理多线程并发问题。这个包包含了大量的工具类和接口,极大地简化了并发编程的复杂性,提高了程序的性能和可伸缩性。本测试源文件主要是针对JUC并发...
java.util.concurrent 多线程框架 java.util.concurrent 多线程框架是 Java 语言中用于多线程编程的库。该库提供了多种线程池实现、并发集合、同步器、lock 等多种机制,以便开发者更方便地编写高效、可靠的多线程...
- [Java SE 8 文档](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentHashMap.html):提供了 `ConcurrentHashMap` 的官方 API 文档。 - [Doug Lea 的个人网站]...
Java并发工具包(java.util.concurrent)是Java平台上用于高效、安全地处理多线程编程的重要组件。这个包包含了丰富的并发工具类,旨在帮助开发者构建高度并发的程序,提高程序的性能和可伸缩性。本资源是该工具包的...
《Java Util Concurrent中文版》是Java并发编程领域的重要参考资料,主要涵盖了Java标准库中的`java.util.concurrent`包及其相关类和接口。这个包是Java多线程编程的核心,提供了高效、安全的并发工具,帮助开发者...
import java.util.concurrent.*; ConcurrentHashMap, String> bb = new ConcurrentHashMap(); bb.put("1", "wj"); bb.put("2", "ry"); for (String key : bb.keySet()) { bb.remove(key); } ``` 在编写多...
总之,`java.util.concurrent` 提供的工具使得并发编程变得更加容易和高效,是 Java 并发编程的基石,无论是对于初学者还是经验丰富的开发者,理解和掌握这个包都是非常重要的。通过熟练运用这些工具,开发者可以...
import java.util.concurrent.*; ConcurrentHashMap, String> bb = new ConcurrentHashMap(); // ... bb.remove(ele); // 直接使用 remove() 方法,无需担心并发修改异常 ``` 总的来说,避免 `java.util....
30. **`java.util.concurrent.ConcurrentHashMap`**:线程安全的哈希映射,提供高效并发操作。 以上30个工具类涵盖了Java开发中的各种常见需求,熟练掌握它们能显著提升编程效率和代码质量。在实际开发中,可以根据...
10. **`java.util.concurrent.*`**: 并发库,包括线程池、并发容器(如`ConcurrentHashMap`)、原子变量(如`AtomicInteger`)等。 11. **`java.io.File`**: 文件和目录操作,如创建、删除、读取文件信息。 12. **...
Java的`java.util.concurrent`包中提供了多种线程安全的集合类,如`ConcurrentHashMap`、`CopyOnWriteArrayList`等,它们能够在多线程环境下安全地修改集合内容。 - **CopyOnWriteArrayList**:这种实现方式通过...
27. **`java.util.concurrent.ConcurrentHashMap`**:线程安全的哈希映射,用于高并发场景。 28. **`java.util.concurrent.CopyOnWriteArrayList`/`CopyOnWriteArraySet`**:线程安全的列表和集合,写操作时复制...
此外,`java.util.concurrent`包下的`ConcurrentHashMap`、`CopyOnWriteArrayList`等容器类,为并发编程提供了线程安全的数据结构。 在`DaemonThreadTest.java`这个文件中,可能涉及到了Java的守护线程(Daemon ...
4. **`java.util.concurrent`包**:这个包包含了线程安全的数据结构(如ConcurrentHashMap)和并发工具类,如ExecutorService、Semaphore、CyclicBarrier等,用于高效地处理多线程场景。 5. **`java.util.logging....
`java.util.concurrent`(JUC)包是Java标准库提供的一组强大的并发工具,它为开发者提供了丰富的类和接口,帮助简化并发编程。本用户指南将深入探讨这个包中的核心概念和主要类。 1. **线程池**: `java.util....