目录:
定义-原子是什么意思?
Atomic是包含变量java.util.concurrent.atomic包类的工具包,可帮助使用Java语言编写锁定和免等待算法。 仅需要部分线程即可持续进行的算法是无锁的。 在免等待算法中,即使线程出现故障或延迟,所有线程也会连续进行。 锁定和免等待算法也称为非阻塞算法。 非阻塞算法用于操作系统和Java虚拟机级别的进程和线程调度。
技术百科解释了原子
所有java.util.concurrent.atomic包类的名称中都带有“ atomic”前缀。 java.util.concurrent.atomic包中提供了不同类型的原子变量,包括:
- 原子布尔
- 原子整数
- 原子整数数组
- AtomicIntegerFieldUpdater
- 原子长
- 原子长数组
- AtomicLongFieldUpdater
- 原子参考
一个示例是线程A持有锁的情况。 A只能访问和更改受此锁保护的变量。 如果线程B在A之后拥有此锁,则只有B可以查看A对由该特定锁保护的变量的更改。 当B尝试获取A持有的锁时,将发生锁定的主要问题。在这种情况下,B被阻塞以等待直到该锁可用为止。 非阻塞算法可解决此问题。
建立原子类的主要目的是实现非阻塞数据结构及其相关的基础结构类。 原子类不能替代java.lang.Integer和相关类。 大多数java.util.concurrent包类都直接或间接使用原子变量而不是同步。 原子变量还用于实现更高的吞吐量,这意味着更高的应用程序服务器性能。
