juc与jvm之第一部

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_32603969/article/details/102749331

进程/线程:打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

猜你喜欢

转载自blog.csdn.net/qq_32603969/article/details/102749331