java并发之CopyOnWriteArraySet

CopyOnWriteArraySet是基于CopyOnWriteArrayList实现的,持有CopyOnWriteArrayList的内部对象,它的迭代器也是CopyOnWriteArrayList的迭代器,add操作通过addAllAbsent或者addIfAbsent去重。

例子

package javalearn.javabase.concurrent;import lombok.extern.slf4j.Slf4j;import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArraySet;@Slf4j
public class CopyOnWriteArraySetTest {private static CopyOnWriteArraySet<String> set = new CopyOnWriteArraySet<>();private static int capcity = 5;//private static HashSet<String> set =new HashSet<>();public static void main(String[] args) {CopyOnWriteArraySetTest.InnerThread t1 = new InnerThread();CopyOnWriteArraySetTest.InnerThread t2 = new InnerThread();t1.start();t2.start();try {Thread.sleep(1000);log.info("collection:{} ",set.toString());} catch (InterruptedException e) {e.printStackTrace();}}static class InnerThread extends Thread {@Overridepublic void run() {for (int i = 0; i < capcity; i++) {set.add(String.valueOf(i));set.add(String.valueOf(i));iterator(set);}}}public static void iterator(Set set) {Iterator iterator = set.iterator();while (iterator.hasNext()) {iterator.next();}}
}

结果

21:10:09.967 [main] INFO javalearn.javabase.concurrent.CopyOnWriteArraySetTest - collection:[0, 1, 2, 3, 4] 

转载于:https://www.cnblogs.com/JuncaiF/p/11373963.html

java并发之CopyOnWriteArraySet相关推荐

  1. 面试:你说你精通Java并发,给我讲讲Java并发之J.U.C

    转载自 面试:你说你精通Java并发,给我讲讲Java并发之J.U.C J.U.C J.U.C即java.util.concurrent包,为我们提供了很多高性能的并发类,可以说是java并发的核心. ...

  2. JAVA并发之多线程基础(2)

    除了我们经常用的synchronized关键字(结合Object的wait()和notify()使用)之外,还有对应的上篇文章讲到的方法JAVA并发之多线程基础(1)之外,我们日常中使用到最多的也就是 ...

  3. JAVA并发之多线程基础(5)

    上面介绍了并发编程中的栅栏等JAVA并发之多线程基础(4) .通过唯一的一个终点线来帮助确定线程是多晚开始执行下一次操作. LockSupport 提供了一个比较底层的线程挂起操作.有点类似于susp ...

  4. 我的Java开发之路

    最近有一位小伙伴通过公众号给我留言, "我参加工作没多久,看着圈里的技术大牛,特别羡慕,也渴望成为技术大牛,想让您分享一下从小白到大牛是怎样练成的,我该如何提高自己" 首先,谢谢这 ...

  5. java并发之SynchronousQueue实现原理

    前言 SynchronousQueue是一个比较特别的队列,由于在线程池方面有所应用,为了更好的理解线程池的实现原理,笔者花了些时间学习了一下该队列源码(JDK1.8),此队列源码中充斥着大量的CAS ...

  6. 你真的弄明白了吗?Java并发之AQS详解

    你真的弄明白了吗?Java并发之AQS详解 带着问题阅读 1.什么是AQS,它有什么作用,核心思想是什么 2.AQS中的独占锁和共享锁原理是什么,AQS提供的锁机制是公平锁还是非公平锁 3.AQS在J ...

  7. 如何通过示例在Java中使用CopyOnWriteArraySet

    CopyOnWriteArraySet是CopyOnWriteArrayList类的弟弟. 这些是专用集合类,这些类是在JDK 1.5上添加的,以及它们最流行的表亲ConcurrentHashMap ...

  8. java并发之CopyOnWirteArrayList

    java并发之CopyOnWirteArrayList CopyOnWirteArrayList的实现 它用了ReentrantLock保证了add,set,remove操作的安全,同时使用volat ...

  9. java并发之Future与Callable使用

    java并发之Future与Callable使用 这篇文章需要大家知道线程.线程池的知识,尤其是线程池. 有的时候我们要获取线程的执行结果,这个时候就需要用到Callable.Future.Futur ...

最新文章

  1. djangorestframework怎么这么好用!
  2. leetcode算法题--反转链表 II★
  3. 【Flutter】Dart 函数 ( 函数构成 | 私有函数 | 匿名函数 | 函数总结 )
  4. 深入理解Java对象序列化
  5. 无线网状网、Zigbee、RFID三种技术分析
  6. Linux --忘记root密码/su: Authentication failure
  7. 如何将Spring Bean注入到JSF Converter
  8. pr如何处理音效_在pr中怎么让声音变的好听?pr怎么让说话的声音更好听?
  9. 随机效应估算与固定效应估算_混合OLS模型、固定效应模型、随机效应模型的区别是什么...
  10. 海外几大移动游戏市场,各自有什么特点?如何选择正确的营销方式?
  11. Android call requires API level 12 的解决方案
  12. php 促成交易,促成交易的方法
  13. 如何使用 ChatGPT (人工智能聊天机器人) 运行 Docker 容器
  14. Goproxy-优秀的开源代理工具
  15. 菲尔兹奖得主埃菲 · 杰曼诺夫全职加入南科大,任职讲席教授
  16. 如何用阿里云服务器建站(新手全流程)
  17. 洛谷P1010 [NOIP1998 普及组] 幂次方 题解
  18. python求解欧拉Euler公式
  19. NLP 的 不可能三角?
  20. linux和windows安装openOffice将excel、doc文件转成pdf或html

热门文章

  1. 计算机窗口设计java实验,Java银行取款异常处理计算器设计图形用户界面设计实验报告.doc...
  2. 使用C# impersonation进行windows帐号的校验
  3. 学习笔记:杨辉三角形上莫队(组合数莫队)(LULU胡策)
  4. jmeter压测前清理内存
  5. Oracle数据库SqlLoad常用技巧总结word版
  6. PAT甲题题解-1106. Lowest Price in Supply Chain (25)-(dfs计算树的最小层数)
  7. Emacs+hideif.el 隐藏预编译代码(或彩色显示预编译代码)
  8. [ZT]MSN Messenger的口令获取源代码, MSNMessenger的口令是经过DPAPI加密后保存在注册表中...
  9. java线程池 的方法_JAVA线程池的实现方法
  10. SystemTimer,TimerTaskList等源码分析