java并发之CopyOnWriteArraySet
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相关推荐
- 面试:你说你精通Java并发,给我讲讲Java并发之J.U.C
转载自 面试:你说你精通Java并发,给我讲讲Java并发之J.U.C J.U.C J.U.C即java.util.concurrent包,为我们提供了很多高性能的并发类,可以说是java并发的核心. ...
- JAVA并发之多线程基础(2)
除了我们经常用的synchronized关键字(结合Object的wait()和notify()使用)之外,还有对应的上篇文章讲到的方法JAVA并发之多线程基础(1)之外,我们日常中使用到最多的也就是 ...
- JAVA并发之多线程基础(5)
上面介绍了并发编程中的栅栏等JAVA并发之多线程基础(4) .通过唯一的一个终点线来帮助确定线程是多晚开始执行下一次操作. LockSupport 提供了一个比较底层的线程挂起操作.有点类似于susp ...
- 我的Java开发之路
最近有一位小伙伴通过公众号给我留言, "我参加工作没多久,看着圈里的技术大牛,特别羡慕,也渴望成为技术大牛,想让您分享一下从小白到大牛是怎样练成的,我该如何提高自己" 首先,谢谢这 ...
- java并发之SynchronousQueue实现原理
前言 SynchronousQueue是一个比较特别的队列,由于在线程池方面有所应用,为了更好的理解线程池的实现原理,笔者花了些时间学习了一下该队列源码(JDK1.8),此队列源码中充斥着大量的CAS ...
- 你真的弄明白了吗?Java并发之AQS详解
你真的弄明白了吗?Java并发之AQS详解 带着问题阅读 1.什么是AQS,它有什么作用,核心思想是什么 2.AQS中的独占锁和共享锁原理是什么,AQS提供的锁机制是公平锁还是非公平锁 3.AQS在J ...
- 如何通过示例在Java中使用CopyOnWriteArraySet
CopyOnWriteArraySet是CopyOnWriteArrayList类的弟弟. 这些是专用集合类,这些类是在JDK 1.5上添加的,以及它们最流行的表亲ConcurrentHashMap ...
- java并发之CopyOnWirteArrayList
java并发之CopyOnWirteArrayList CopyOnWirteArrayList的实现 它用了ReentrantLock保证了add,set,remove操作的安全,同时使用volat ...
- java并发之Future与Callable使用
java并发之Future与Callable使用 这篇文章需要大家知道线程.线程池的知识,尤其是线程池. 有的时候我们要获取线程的执行结果,这个时候就需要用到Callable.Future.Futur ...
最新文章
- djangorestframework怎么这么好用!
- leetcode算法题--反转链表 II★
- 【Flutter】Dart 函数 ( 函数构成 | 私有函数 | 匿名函数 | 函数总结 )
- 深入理解Java对象序列化
- 无线网状网、Zigbee、RFID三种技术分析
- Linux --忘记root密码/su: Authentication failure
- 如何将Spring Bean注入到JSF Converter
- pr如何处理音效_在pr中怎么让声音变的好听?pr怎么让说话的声音更好听?
- 随机效应估算与固定效应估算_混合OLS模型、固定效应模型、随机效应模型的区别是什么...
- 海外几大移动游戏市场,各自有什么特点?如何选择正确的营销方式?
- Android call requires API level 12 的解决方案
- php 促成交易,促成交易的方法
- 如何使用 ChatGPT (人工智能聊天机器人) 运行 Docker 容器
- Goproxy-优秀的开源代理工具
- 菲尔兹奖得主埃菲 · 杰曼诺夫全职加入南科大,任职讲席教授
- 如何用阿里云服务器建站(新手全流程)
- 洛谷P1010 [NOIP1998 普及组] 幂次方 题解
- python求解欧拉Euler公式
- NLP 的 不可能三角?
- linux和windows安装openOffice将excel、doc文件转成pdf或html
热门文章
- 计算机窗口设计java实验,Java银行取款异常处理计算器设计图形用户界面设计实验报告.doc...
- 使用C# impersonation进行windows帐号的校验
- 学习笔记:杨辉三角形上莫队(组合数莫队)(LULU胡策)
- jmeter压测前清理内存
- Oracle数据库SqlLoad常用技巧总结word版
- PAT甲题题解-1106. Lowest Price in Supply Chain (25)-(dfs计算树的最小层数)
- Emacs+hideif.el 隐藏预编译代码(或彩色显示预编译代码)
- [ZT]MSN Messenger的口令获取源代码, MSNMessenger的口令是经过DPAPI加密后保存在注册表中...
- java线程池 的方法_JAVA线程池的实现方法
- SystemTimer,TimerTaskList等源码分析