进程/线程:打360软件在后台运行,这是进程;杀毒和清理同时运行,这是两个不同的线程

并发/并行:多个线程去强同一个资源,这叫并发;一边泡脚,一边泡方便面,一边烧水,这叫并行

 

如何写企业级多线程代码:多个线程 操作 资源类。

 

目录结构

一、Lamda函数式接口编程

二、高并发案例(多个线程去抢同一个资源)

三、集合线程安全

 

一、Lamda函数式接口编程

juc与jvm之第一部

 

二、高并发案例(多个线程去抢同一个资源)

juc与jvm之第一部

juc与jvm之第一部

注意:A\B\C线程执行顺序由操作系统和CPU决定。

 

三、List、Set、Map接口集合线程都不安全案例和解决方案

ArryList扩容是原值的一半。默认10。  15  22...

HashMap扩容是原值的一倍。默认16。32  64...

juc与jvm之第一部

为什么不安全?因为多个线程对集合里的数据读写拉扯导致数据不一致(add写,out读)。

  • List

juc与jvm之第一部

  • Set

不安全样例

juc与jvm之第一部

解决方案

juc与jvm之第一部

  • Map

不安全样例

juc与jvm之第一部

解决方案

juc与jvm之第一部

 

  • 不安全都会报如下错误:并发修改异常

juc与jvm之第一部

 

  • CopyOnWriteArrayList()原理源码:读写分离和自动扩充

juc与jvm之第一部
juc与jvm之第一部

  • HashSet源码:HashSet底层是HashMap

juc与jvm之第一部

juc与jvm之第一部

juc与jvm之第一部

相关文章: