版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
进程/线程:打360软件在后台运行,这是进程;杀毒和清理同时运行,这是两个不同的线程。
并发/并行:多个线程去强同一个资源,这叫并发;一边泡脚,一边泡方便面,一边烧水,这叫并行。
如何写企业级多线程代码:多个线程 操作 资源类。
目录结构
一、Lamda函数式接口编程
二、高并发案例(多个线程去抢同一个资源)
三、集合线程安全
一、Lamda函数式接口编程
二、高并发案例(多个线程去抢同一个资源)
注意:A\B\C线程执行顺序由操作系统和CPU决定。
三、List、Set、Map接口集合线程都不安全案例和解决方案
ArryList扩容是原值的一半。默认10。 15 22...
HashMap扩容是原值的一倍。默认16。32 64...
为什么不安全?因为多个线程对集合里的数据读写拉扯导致数据不一致(add写,out读)。
- List
- Set
不安全样例
解决方案
- Map
不安全样例
解决方案
- 不安全都会报如下错误:并发修改异常
- CopyOnWriteArrayList()原理源码:读写分离和自动扩充
- HashSet源码:HashSet底层是HashMap