42-其他说明
其他说明
单个变量的变量句柄会有4种不同的访问类型。
- 读模式 :该模式用于获取一个变量的读取访问模式。你可以用以下方法。
get()
:读取变量的值如同该值声明了非volatile。getVolatile()
:读取变量的值如同该值声明了volatile。getAcquire()
:读取变量的值并保证在指令优化之前后面修改或访问该变量的指令不会被重排序。getOpaque()
:读取变量的值并保证当前线程中的指令不会重排序,但不能保证其他线程也不重排序。
- 写模式 :该模式用于获取一个变量的写入访问模式。可以使用
set()
、set Volatile()
、setRelease()
、setOpaque()
方法。它们等同于与之前读模式对应的方法,只是这是写入访问。 - 原子性访问模式: 该模式用于获取一个与原子性变量操作相似的功能,比如说,比较和获取变量的值。你可以使用以下方法。
compareAndSet()
:如果传递进来的参数与当前变量的值相等,则改变这个声明为volatile
变量的值。weakCompareAndSet()
和weakCompareAndSetVolatile()
:如果传递进来的参数与当前变量的值相等,则有可能原子性地改变该变量的值无论它是否声明为volatile
变量。
- 数字的更新访问模式: 该模式会原子性地修改数字的值。