- 浏览: 29163 次
- 性别:
- 来自: 北京
最新评论
java.util.concurrent.ConcurrentHashMap:
ConcurrentHashMap是支持高并发、高吞吐量的线程安全的HashMap实现。它允许多个修改操作并发进行,关键在于使用了多个锁来控制对hash表的不同部分(Segment)进行的修改。每个段是一个小的hash table,有自己的锁,只要修改操作发生在不同的段上,就可以并发进行。在执行跨段的操作时首先尝试在不锁定整个map的情况下进行操作,不成功后再锁定整个map。key和value都不能为null。
ConcurrentHashMap中的重要字段:
1. int DEFAULT_INITIAL_CAPACITY
默认初始容量。这个容量会均匀分布到每个Segment中,即每一段的小hash table的容量是一样的。
2. float DEFAULT_LOAD_FACTOR
默认装载因子。每个段的装载因子。
3. int DEFAULT_CONCURRENCY_LEVEL
默认的并发级别。段的个数(也就是segments数组的大小)要大于这个值,而且要是2的n次方。
4. int MAXIMUM_CAPACITY
ConcurrentHashMap的最大容量。初始容量不能大于这个值。
5. int MAX_SEGMENTS
段个数的最大值。并发级别的值concurrencyLevel不能大于这个数。
6. int RETRIES_BEFORE_LOCK
跨段操作时(如size()和containsValue()),检测到数据不一致,锁定整个map前,重新尝试的次数。
7. Segment<K,V>[] segments
存放段(Segment)的数组
ConcurrentHashMap的构造函数:
1. ConcurrentHashMap()
2. ConcurrentHashMap(int initialCapacity)
3. ConcurrentHashMap(int initialCapacity, float loadFactor)
4. ConcurrentHashMap(int initialCapacity, float loadFactor, int concurrencyLevel)
5. ConcurrentHashMap(Map<? extends K, ? extends V> m)
进行构造时,利用指定的initialCapacity、loadFactor、concurrencyLevel生成segments数组,数组的大小是2的n次方且大于concurrencyLevel,数组中每个段Segment的初始容量和装载因子由initialCapacity、loadFactor来确定。
ConcurrentHashMap是支持高并发、高吞吐量的线程安全的HashMap实现。它允许多个修改操作并发进行,关键在于使用了多个锁来控制对hash表的不同部分(Segment)进行的修改。每个段是一个小的hash table,有自己的锁,只要修改操作发生在不同的段上,就可以并发进行。在执行跨段的操作时首先尝试在不锁定整个map的情况下进行操作,不成功后再锁定整个map。key和value都不能为null。
ConcurrentHashMap中的重要字段:
1. int DEFAULT_INITIAL_CAPACITY
默认初始容量。这个容量会均匀分布到每个Segment中,即每一段的小hash table的容量是一样的。
2. float DEFAULT_LOAD_FACTOR
默认装载因子。每个段的装载因子。
3. int DEFAULT_CONCURRENCY_LEVEL
默认的并发级别。段的个数(也就是segments数组的大小)要大于这个值,而且要是2的n次方。
4. int MAXIMUM_CAPACITY
ConcurrentHashMap的最大容量。初始容量不能大于这个值。
5. int MAX_SEGMENTS
段个数的最大值。并发级别的值concurrencyLevel不能大于这个数。
6. int RETRIES_BEFORE_LOCK
跨段操作时(如size()和containsValue()),检测到数据不一致,锁定整个map前,重新尝试的次数。
7. Segment<K,V>[] segments
存放段(Segment)的数组
ConcurrentHashMap的构造函数:
1. ConcurrentHashMap()
2. ConcurrentHashMap(int initialCapacity)
3. ConcurrentHashMap(int initialCapacity, float loadFactor)
4. ConcurrentHashMap(int initialCapacity, float loadFactor, int concurrencyLevel)
5. ConcurrentHashMap(Map<? extends K, ? extends V> m)
进行构造时,利用指定的initialCapacity、loadFactor、concurrencyLevel生成segments数组,数组的大小是2的n次方且大于concurrencyLevel,数组中每个段Segment的初始容量和装载因子由initialCapacity、loadFactor来确定。
发表评论
-
asdfasfd
2014-04-12 17:11 625http://www.laomaotao.net/?H9197 ... -
工木rrrr
2012-12-20 20:33 0工工工工工工工工 -
http://yiminghe.iteye.com/blog/291126
2011-10-13 18:04 0http://yiminghe.iteye.com/blog/ ... -
java.util.concurrent.Executors源码学习(三)
2011-02-01 11:43 1327Executors中的重要方法(续): 8. Schedu ... -
java.util.concurrent.Executors源码学习(二)
2011-02-01 11:41 1286Executors中的重要方法(续): 5. Executo ... -
java.util.concurrent.Executors源码学习(一)
2011-02-01 11:39 1773java.util.concurrent.Executors: ... -
java.util.concurrent.ExecutorService(二)
2011-02-01 11:37 1323ExecutorService中重要的方法(续): 6. ... -
java.util.concurrent.ExecutorService(一)
2011-02-01 11:36 2472java.util.concurrent.ExecutorSe ... -
java.util.concurrent.LinkedBlockingDeque源码学习(三)
2011-02-01 11:33 1262LinkedBlockingDeque中的重要方法(续): ... -
java.util.concurrent.LinkedBlockingDeque源码学习(二)
2011-02-01 11:32 1161LinkedBlockingDeque中的重要方法: 1. ... -
java.util.concurrent.LinkedBlockingDeque源码学习(一)
2011-02-01 11:30 2436java.util.concurrent.LinkedBloc ... -
java.util.concurrent.ConcurrentHashMap源码学习(四)
2011-02-01 11:29 1445ConcurrentHashMap中内部类Se ... -
java.util.concurrent.ConcurrentHashMap源码学习(三)
2011-02-01 11:27 1085ConcurrentHashMap中的内部类: 1. sta ... -
java.util.concurrent.ConcurrentHashMap源码学习(二)
2011-02-01 11:24 1181ConcurrentHashMap中重要的方法: 1. V ... -
java.util.LinkedHashMap源码学习(二)
2011-02-01 11:20 1497LinkedHashMap中重要的方法: 1. void c ... -
java.util.LinkedHashMap源码学习(一)
2011-02-01 11:19 1221java.util.LinkedHashMap: Linke ... -
java.util.HashMap源码学习(二)
2011-02-01 11:17 1013HashMap中重要的方法: 1. public V put ... -
java.util.HashMap源码学习(一)
2011-02-01 11:09 1138java.util.HashMap: table数组中存放的 ...
相关推荐
为了简化并发编程的复杂性,Java 5 引入了 `java.util.concurrent` 包,提供了一系列强大的类和接口,帮助开发者更高效地管理多线程任务。 #### 二、`java.util.concurrent` 概览 `java.util.concurrent` 包提供了...
多线程编程是 Java 语言中的一大特点,java.util.concurrent 多线程框架则是该特点的体现。该框架提供了多种机制,包括线程池、并发集合、同步器、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多线程编程的核心,提供了高效、安全的并发工具,帮助开发者...
Java.util.concurrent(JUC)是Java平台中的一个核心包,专门用于处理多线程并发问题。这个包包含了大量的工具类和接口,极大地简化了并发编程的复杂性,提高了程序的性能和可伸缩性。本测试源文件主要是针对JUC并发...
在Java编程中,`java.util.ConcurrentModificationException` 是一个常见的运行时异常,通常发生在尝试并发修改集合时。这个异常的产生是由于集合类(如HashMap)的非线程安全特性,当你在一个线程中使用迭代器遍历...
总之,`java.util.concurrent` 提供的工具使得并发编程变得更加容易和高效,是 Java 并发编程的基石,无论是对于初学者还是经验丰富的开发者,理解和掌握这个包都是非常重要的。通过熟练运用这些工具,开发者可以...
`java.util.ConcurrentModificationException` 是一个在 Java 中常见的运行时异常,它通常发生在多线程环境中,当一个线程正在遍历一个集合(如 `ArrayList`, `HashMap` 等),而另一个线程同时尝试修改这个集合时。...
30. **`java.util.concurrent.ConcurrentHashMap`**:线程安全的哈希映射,提供高效并发操作。 以上30个工具类涵盖了Java开发中的各种常见需求,熟练掌握它们能显著提升编程效率和代码质量。在实际开发中,可以根据...
10. **`java.util.concurrent.*`**: 并发库,包括线程池、并发容器(如`ConcurrentHashMap`)、原子变量(如`AtomicInteger`)等。 11. **`java.io.File`**: 文件和目录操作,如创建、删除、读取文件信息。 12. **...
此外,`java.util.concurrent`包下的`ConcurrentHashMap`、`CopyOnWriteArrayList`等容器类,为并发编程提供了线程安全的数据结构。 在`DaemonThreadTest.java`这个文件中,可能涉及到了Java的守护线程(Daemon ...
27. **`java.util.concurrent.ConcurrentHashMap`**:线程安全的哈希映射,用于高并发场景。 28. **`java.util.concurrent.CopyOnWriteArrayList`/`CopyOnWriteArraySet`**:线程安全的列表和集合,写操作时复制...
4. **`java.util.concurrent`包**:这个包包含了线程安全的数据结构(如ConcurrentHashMap)和并发工具类,如ExecutorService、Semaphore、CyclicBarrier等,用于高效地处理多线程场景。 5. **`java.util.logging....
`java.util.concurrent`(JUC)包是Java标准库提供的一组强大的并发工具,它为开发者提供了丰富的类和接口,帮助简化并发编程。本用户指南将深入探讨这个包中的核心概念和主要类。 1. **线程池**: `java.util....
在Java编程语言中,`java.util`包是核心库的一部分,包含了大量用于处理日常编程任务的类和接口。这个包提供了各种数据结构(如ArrayList、LinkedList、HashSet、HashMap)、集合框架、日期时间处理、事件模型、...
10. **`java.util.concurrent.*`**:并发工具类库,包括线程池`ExecutorService`、同步容器如`Semaphore`、`CountDownLatch`、`CyclicBarrier`等,以及原子类如`AtomicInteger`、`AtomicLong`,它们提供了高效的并发...