原子类 Atomic
@Test
public void testAtomicBoolean() {
AtomicBoolean atomicBoolean = new AtomicBoolean();
boolean b = atomicBoolean.get();
System.out.println("默认值:" + b);
atomicBoolean.set(true);
System.out.println(atomicBoolean.get());
}
@Test
public void testAtomic() throws NoSuchFieldException {
System.out.println(AtomicInteger.class.getDeclaredField("value"));
AtomicInteger atomicInteger = new AtomicInteger();
int i = atomicInteger.get();
System.out.println("defaultValue:" + i);
//当前值 + 1
atomicInteger.getAndIncrement();
System.out.println("getAndIncrement:" + atomicInteger.get());
//指定增加数量 + n
atomicInteger.getAndAdd(4);
System.out.println("getAndAdd:" + atomicInteger.get());
//当前值 - 1
atomicInteger.getAndDecrement();
System.out.println("getAndDecrement:" + atomicInteger.get());
//当前值 + 1 并返回结果
System.out.println("incrementAndGet:" + atomicInteger.incrementAndGet());
//当前值 - 1 并返回结果
System.out.println("decrementAndGet:" + atomicInteger.decrementAndGet());
//当前值 + n 并返回结果
System.out.println("addAndGet:" + atomicInteger.addAndGet(5)); System.out.println("doubleValue:" + atomicInteger.doubleValue());
System.out.println("longValue:" + atomicInteger.longValue());
System.out.println("floatValue:" + atomicInteger.floatValue());
System.out.println("byteValue:" + atomicInteger.byteValue());
System.out.println("shortValue:" + atomicInteger.shortValue());
System.out.println("toString:" + atomicInteger.toString());
}
原子类 Atomic的更多相关文章
- 什么是原子操作?在 Java Concurrency API 中有哪些原 子类(atomic classes)?
原子操作(atomic operation)意为"不可被中断的一个或一系列操作" . 处理器使用基于对缓存加锁或总线加锁的方式来实现多处理器之间的原子操作. 在 Java 中可以通 ...
- Atomic原子类
Atomic原子类 Atomic原子类位于并发包java.util.concurrent下的java.util.concurrent.Atomic中. 1. 原子更新基本类型类 使用原子方式更新基本数 ...
- 多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)
前言:刚学习了一段机器学习,最近需要重构一个java项目,又赶过来看java.大多是线程代码,没办法,那时候总觉得多线程是个很难的部分很少用到,所以一直没下决定去啃,那些年留下的坑,总是得自己跳进去填 ...
- 原子类java.util.concurrent.atomic.*原理分析
原子类java.util.concurrent.atomic.*原理分析 在并发编程下,原子操作类的应用可以说是无处不在的.为解决线程安全的读写提供了很大的便利. 原子类保证原子的两个关键的点就是:可 ...
- Java CAS同步机制 原理详解(为什么并发环境下的COUNT自增操作不安全): Atomic原子类底层用的不是传统意义的锁机制,而是无锁化的CAS机制,通过CAS机制保证多线程修改一个数值的安全性。
精彩理解: https://www.jianshu.com/p/21be831e851e ; https://blog.csdn.net/heyutao007/article/details/19 ...
- Juc中Atomic原子类总结
1 Atomic原子类介绍 2 基本类型原子类 3 数组类型原子类 4 引用类型原子类 5 对象的属性修改类型原子类
- (转)Java atomic原子类的使用方法和原理(一)
在讲atomic原子类之前先看一个小例子: public class UseAtomic { public static void main(String[] args) { AtomicIntege ...
- [Java多线程]-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)
前言:刚学习了一段机器学习,最近需要重构一个java项目,又赶过来看java.大多是线程代码,没办法,那时候总觉得多线程是个很难的部分很少用到,所以一直没下决定去啃,那些年留下的坑,总是得自己跳进去填 ...
- Java并发—原子类,java.util.concurrent.atomic包(转载)
原子类 Java从JDK 1.5开始提供了java.util.concurrent.atomic包(以下简称Atomic包),这个包中 的原子操作类提供了一种用法简单.性能高效.线程安全地更新一个变量 ...
随机推荐
- 微信小程序class封装http
config.js var config = { base_api_url:"https://douban.uieee.com/v2/" } export {config} uti ...
- 【转】Java 8新特性(四):新的时间和日期API
Java 8另一个新增的重要特性就是引入了新的时间和日期API,它们被包含在java.time包中.借助新的时间和日期API可以以更简洁的方法处理时间和日期. 在介绍本篇文章内容之前,我们先来讨论Ja ...
- SQL Delta实用案例介绍
概述 本篇文章主要介绍SQL DELTA的简单使用.为了能够更加明了的说明其功能,本文将通过实际项目中的案例加以介绍. 主要容 SQL DELTA 简介 创建SQL DELTA项目 ...
- Java-JUC(十三):现在有两个线程同时操作一个整数I,做自增操作,如何实现I的线程安全性?
问题分析:正如i在多线程中如果想实现i的多线程操作,必须i要使用volitle来保证其内存可见性,但是i++自增操作不具备原子性操作,因此需要对i++这段代码确保其原子性操作即可. 方案1: 使用Re ...
- VBA 宏文件源代码密码解除
VBA Project密码解除第一种方法详细步骤参考:以下VBA代码是第二种方法 '使用本代码之前需要将需要解除密码保护的含有宏的Excel文件(如果是xlsm文件,需要先另存为97-03版的xls文 ...
- 【Java】单点登录(SSO)
单点登录介绍 SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他应用中用于同一 ...
- Js ascii 16进制 url-encode
function fixedEncodeURIComponent (str) { return str.replace(/./g, function(c) { return '%' + c.charC ...
- BladeX 2.0.7.RELEASE版本git后,在idea中导入项目,结果无法运行FlowApplication等几个服务的错误
问题:2.0.7.RELEASE版本git后,在Intellij IDEA运行项目,结果无法运行FlowApplication等几个服务的错误 描述:打开IDEA,点击Check out from V ...
- Java 8 stream 经典示例
package org.study2.java8.stream; import org.junit.Test; import java.util.*; import java.util.stream. ...
- [LeetCode] 388. Longest Absolute File Path 最长的绝对文件路径
Suppose we abstract our file system by a string in the following manner: The string "dir\n\tsub ...