并发编程的基础分类
- 线程间如何通信?
- 线程间如何同步?
两种通信机制
1、内存共享
2、消息传递
java并发采用的是共享内存模型
java内存模型的抽象
java中所有实例域、静态域和数组元素存在堆内存中,堆内存线程共享。
java线程间的通信由java内存模型(jmm)来控制:
线程共享变量在主内存(main memory)中,每个线程都有私有的本地内存(local memory),
- 内存共享是线程A把本地内存刷新到主内存中去。
- 线程B冲主内存中读取A更新过的共享变量。
指令重排
为了提升性能,编译器和处理器需要对指令重新排序
- 编译器优化的重排,不改变单线程语义的前提下,重排指令的执行顺序。
- 指令并行重排,
I'm so cute. Please give me money.
- Post link: http://dongkw.github.io/2020/09/30/java%E5%86%85%E5%AD%98%E6%A8%A1%E5%9E%8B/
- Copyright Notice: All articles in this blog are licensed under unless stating additionally.
若没有本文 Issue,您可以使用 Comment 模版新建。
GitHub Issues