当前位置:网站首页>多线程学习笔记-3.并发容器
多线程学习笔记-3.并发容器
2022-08-04 16:53:00 【天生我才~~】
文章目录
慕课网多线程教程
1. 并发容器概览


2. 集合类的历史
2.1 Vector和Hashtable
- Vector类似于线程安全的
ArrayList - Hashtable 类似于线程安全的
HashMap
/** * 描述: 演示Vector,主要是看Vector源码 */
public class VectorDemo {
public static void main(String[] args) {
Vector<String> vector = new Vector<>();
vector.add("test");
System.out.println(vector.get(0));
}
}

- 方法中一般都有
synchronized修饰,可以保证线程安全,但性能受影响
/** * 描述: TODO */
public class HashtableDemo {
public static void main(String[] args) {
Hashtable<String, String> hashtable = new Hashtable<>();
hashtable.put("学完以后跳槽涨薪幅度", "80%");
System.out.println(hashtable.get("学完以后跳槽涨薪幅度"));
}
}


2.2 ArrayList 和 HashMap

/** * 描述: 演示Collections.synchronizedList(new ArrayList<E>()) */
public class SynList {
public static void main(String[] args) {
List<Integer> list = Collections.synchronizedList(new ArrayList<Integer>());
list.add(5);
System.out.println(list.get(0));
Map<Object, Object> objectObjectMap = Collections.synchronizedMap(new HashMap<>());
}
}



- 在方法内的同步代码块上加锁
2.3 ConcurrentHashMap和CopyOnWriteArrayList

- 其中,
CopyOnWriteArrayList使用于读多写少的情况
3. ConcurrentHashMap
3.1 Map简介
4. CopyOnWriteArrayList
5. 并发队列(阻塞和非阻塞)
边栏推荐
猜你喜欢
随机推荐
如何提高员工积极性?
LeetCode 0167. 两数之和 II - 输入有序数组
shell中当basename和dirname无法满足你的需求时你一定要想到的命令
测试开发必备技能-Jmeter二次开发
测试零基础如何进入大厂?一场面试教会你(附面试题解析)
刷爆朋友圈!Alibaba出品亿级并发设计速成笔记太香了!
《分布式云最佳实践》分论坛,8月11日深圳见
WEB 渗透之逻辑漏洞
ping不通百度
历史上的今天:微软研究院的创始人诞生;陌陌正式上线;苹果发布 Newton OS
Hubei Mobile ZTE B860AV2.1_S905L_ flash firmware package
Minecraft 我的世界 .minecraft下的各个文件夹的用处
广东湛江海关破获3起走私冻海产品案 查证案值约1亿元
JVM内存和垃圾回收-08.方法区
Go语言gin框架返回json格式里,怎么把某个int属性转成string返回?
SAP 电商云 Spartacus UI SSR 单元测试里的 callFake
redis
罗振宇折戟创业板/ B站回应HR称用户是Loser/ 腾讯罗技年内合推云游戏掌机...今日更多新鲜事在此...
Unity Apple登录接入
LeetCode 0168. Excel表列名称









