并发基础(一)并发的三大特性

并行是指在同一时刻多条指令在多个处理器上同时执行,而并发则是在宏观上看似多条指令同时执行,但实际上是在快速交替执行。Java内存模型(JMM)确保了并发执行时的可见性,即线程修改的共享变量对其他线程可见,但不保证有序性,因为存在指令重排。原子性是指操作不可中断,Java中的基本类型读写是原子性的,但复合操作如自增可能需要额外的原子性保障。

1.并行和并发

并行:即同时进行,指在同一时刻,有多条指令在多个处理器上同时执行。所以无论从微观还是从宏观来看,二者都是一起执行的。

并发:指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。

2.并发的三大特性(可见性、有序性、原子性)

JMM内存模型

1.0.可见性

当一个线程修改了共享变量的值,其他线程能够看到修改的值。 Java内存模型是通过在变量修改后将新值同步回主内存,在变量读取前从主内存刷新变量值这种依赖主内存作为传递媒介的方法来实现可见性的。

2.0.有序性

程序执行的顺序按照代码的先后顺序执行。JVM 存在指令重排,所以存在有序性问题。

3.0.原子性

一个或多个操作,要么全部执行且在执行过程中不被任何因素打断,要么全部不执行。在 Java中,对基本数据类型的变量的读取和赋值操作是原子性操作(64位处理器)。不采取任何的原子性保障措施的自增操作并不是原子性的。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值