原子性(Atomicity)
概念
- 原子性是指一个操作或者一系列操作要么全部完成,要么全部不完成,不会在中间某个环节出现中断
- 在并发编程中,如果一个操作是原子的,那么这个操作要么完全执行,要么完全不执行,不会被其他线程干扰
可见性(Visibility)
概念
- 可见性是指一个线程修改了共享变量的值,其他线程能够立即看到修改后的值
- 在并发编程中,如果一个线程修改了共享变量的值,其他线程却看不到修改后的值,那么就可能出现数据不一致和其他并发问题
有序性(Ordering)
概念
- 有序性是指程序执行的顺序按照某种固定的规则进行,不会被操作系统或者硬件随意打乱
- 在并发编程中,如果一个操作先于另一个操作执行,那么它也必须在线程中先于另一个操作执行
- 由于并发和异步的性质,线程的执行顺序可能会被操作系统调度器打乱。因此需要使用同步机制来保证操作的有序性