0
点赞
收藏
分享

微信扫一扫

Java--Set--线程安全的操作方法--实例


简介

        本文用示例介绍Java中的Set的线程安全的操作方法。

线程安全的操作方法

方法

示例

原理

优缺点


Collections

.synchronizedSet(List)


Set set = Collections.synchronizedSet(new HashSet<>());

Object mutex = new Object()。对此对象使用synchronized

JUC中的CopyOnWriteSet

CopyOnWriteSet<String> set= new CopyOnWriteSet<String>();

基于CopyOnWriteArrayList


读多写少时性能高;

写多时性能差;



ConcurrentHashMap

.newKeySet()


Set<String> set = ConcurrentHashMap.newKeySet()

基于ConcurrentHashMap


占空间略大。

写多读少时性能高于CopyOnWriteSet

读多写少时性能差于CopyOnWriteSet



Collections.newSetFromMap(

  new ConcurrentHashMap<>())


Set<String> set = Collections.newSetFromMap(new ConcurrentHashMap<>());

基于ConcurrentHashMap


占空间略大。

写多读少时性能高于CopyOnWriteSet

读多写少时性能差于

CopyOnWriteSet



举报

相关推荐

0 条评论