`
- 浏览:
370189 次
- 性别:
- 来自:
Alien
-
java数据结构:ConcurrentSkipListSet<E>与CopyOnWriteArraySet<E>
分类: java_数据结构 java_线程2012-07-05 13:59 313人阅读 收藏 举报
- import java.util.concurrent.ConcurrentSkipListSet;
- import java.util.concurrent.ExecutorService;
- import java.util.concurrent.Executors;
-
- import org.junit.Test;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- public class ConcurrentSkipListSetTest {
-
- private static ConcurrentSkipListSet<Student> listSet = new ConcurrentSkipListSet<Student>();
-
- static {
- for(int i = 1; i <= 30; i++){
- listSet.add(new Student(new Long(i)));
- }
- }
-
- public static void main(String[] args) {
-
- ExecutorService threadPool = Executors.newFixedThreadPool(3);
- threadPool.execute(new Runnable() {
- public void run() {
- while(listSet.size() != 0){
- sop(Thread.currentThread().getName()+ " : " + listSet.pollFirst());
- }
- }
- });
-
- threadPool.execute(new Runnable() {
- public void run() {
- while(listSet.size() != 0){
- sop(Thread.currentThread().getName()+ " : " + listSet.pollLast());
- }
- }
- });
-
- threadPool.execute(new Runnable() {
- public void run() {
- while(listSet.size() != 0){
- sop(Thread.currentThread().getName()+ " : " + listSet.pollFirst());
- }
- }
- });
- }
-
- @Test
- public void test(){
- }
-
- private static void sop(Object obj){
- System.out.println(obj);
- }
- }
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
extends E> c)`: 通过指定的集合创建一个新的CopyOnWriteArraySet,包含所有集合中的元素。 - 其他标准的Set接口方法,如`add()`, `addAll()`, `clear()`, `contains()`, `containsAll()`, `equals()`, `isEmpty()`...
与`ConcurrentSkipListSet`类似,它也使用跳表作为底层数据结构,能够提供高效的并发访问能力。 **应用场景:** - 需要排序功能,并且对性能有较高要求的场景。 #### AQS同步组件 AQS...
面试中,Java集合框架的题目通常会测试应聘者对数据结构、算法以及API的理解。以下是对Java集合框架的一些核心知识点的详细阐述: 1. **集合与接口**:Java集合框架包括List、Set和Queue等接口,它们都是继承自...
Java并发容器是Java多线程编程中的重要工具,它们提供了高效、线程安全的数据结构,使得在并发环境下处理数据变得更加简单。在`java.util.concurrent`包中,有四种主要的并发容器类型:队列(BlockingQueue)、Map...
Java中的线程安全是多线程编程中一个重要的概念,主要涉及到并发访问数据结构时的正确性和一致性。线程安全的实现方式多种多样,包括使用synchronized关键字、原子类、阻塞队列以及特定的并发集合类等。下面将详细...
Java并发编程中,为了在多线程环境下保证数据的一致性和安全性,`java.util.concurrent`包提供了多种线程安全的容器。以下是对标题和描述中提及的一些并发容器的详细解释: 1. **ConcurrentHashMap**: 是线程安全的...
- **ConcurrentSkipListMap**:实现了`NavigableMap`接口,提供了一个基于跳表的数据结构,保证了对数级别的性能。 - **Set容器**: - **ConcurrentSkipListSet**:基于跳表实现的`NavigableSet`。 - **...
3. ConcurrentSkipListMap 和 ConcurrentSkipListSet 基于跳表(Skip List)数据结构,提供了一个可并发访问的有序映射和集合。跳表允许快速查找,同时保持插入和删除操作的高效性。 4. ConcurrentLinkedQueue 是一...
- **写时复制容器**:如CopyOnWriteArrayList和CopyOnWriteArraySet,读操作无锁,写操作复制原有数据结构。 ### 第五章 JMH性能测试 1. **JMH(Java Microbenchmark Harness)**:用于编写和运行微基准测试,...
在Java编程语言中,集合框架是处理数据的重要组成部分。这里我们关注的是集合的效率,特别是针对不同实现的List、Set接口以及Map接口的性能对比。通过对数组`chars`进行1000000万次操作,我们可以评估各种集合类在...
4. `Stack` 是`Vector`的一个子类,实现栈数据结构,线程安全。 `Set`接口不允许有重复元素,常见的实现类有`HashSet`和`TreeSet`: 1. `HashSet` 通过`HashMap`实现,无序且不保证元素顺序,非线程安全。 2. `...