一、三大性质
线程安全的三大性质分别为:原子性、可见性和有序性。
原子性 | 一个操作不可中断,要么成功要么失败。 举例:
|
可见性 | 当一个线程对共享区域变量进行修改后,别的线程能立刻访问到修改后的值。 |
有序性 | 同一时刻仅能有一个线程访问共享区信息,其他与之竞争的线程只能等待。 |
二、volatile关键字
volatile关键字具有有序性和可见性,不具有原子性。
线程安全的三大性质分别为:原子性、可见性和有序性。
原子性 | 一个操作不可中断,要么成功要么失败。 举例:
|
可见性 | 当一个线程对共享区域变量进行修改后,别的线程能立刻访问到修改后的值。 |
有序性 | 同一时刻仅能有一个线程访问共享区信息,其他与之竞争的线程只能等待。 |
volatile关键字具有有序性和可见性,不具有原子性。