JUC 并发编程学习
-Kk
这个作者很懒,什么都没留下…
展开
-
JUC 并发编程学习(4)
1. JMM 请你谈谈对Volatile的理解 Volatile是Java虚拟机提供轻量级的同步机制。 保证可见性 不保证原子性 禁止指令重排 什么是JMM JVM:Java内存模型,不存在的东西,他是一个概念、约定。 关于JMM的一些同步的约定: 线程解锁前,必须把共享变量立刻刷回主存。 线程枷锁前,必须读取主存中的最新值到工作内存中! 加锁和解锁是同一把锁。 线程:工作内存、主内存 八种操作: 内存交互操作 内存交互操作有8种,虚拟机实现必须保证每一个操作都是原子的,不可在分原创 2020-12-08 15:38:08 · 1382 阅读 · 0 评论 -
JUC 并发编程学习(3)
1. 四大函数式接口(必须掌握) 新时代程序员:lambda表达式、函数式接口、链式编程、Stream流式计算 1.1 函数式接口 @FunctionalInterface public interface Runnable { /** * When an object implementing interface <code>Runnable</code> is used * to create a thread, starting the threa原创 2020-12-04 18:49:24 · 193 阅读 · 1 评论 -
JUC 并发编程学习(2)
1. ArrayList 多线程不安全 在多条线程下,对同一个ArrayList执行add方法时,可能会报java.util.ConcurrentModificationException,即为并发修改时错误。解决方法有3种: List list = new Vector<>(); List list = Collections.synchronizedList(new ArrayList<>()); List list = new CopyOnWriteArrayList<原创 2020-12-03 18:07:51 · 120 阅读 · 0 评论 -
JUC 并发编程学习(1)
1. 什么是JUC java.util 工具包、包、分类 业务:普通线程代码 Thread Runnable 没有返回值、效率相比于Callable相对较低! 2. 线程和进程 线程、进程,如果不能使用一句话说出来的的基数,不扎实! 进程:一个程序,QQ.exe Music.exe 程序的集合 ; 一个进程往往可以包含多个线程,至少包含一个! Java默认有两个线程:main线程 和 GC线程。 线程: 开了一个进程 Typora,写字,自动保存(线程负责) 对于Java而言:Thread、Run原创 2020-12-01 18:38:06 · 95 阅读 · 0 评论