【juc】字段更新器

news/2024/5/20 9:55:17 标签: juc

目录

        • 一、说明
        • 二、代码示例

一、说明

  • 1.利用字段更新器可以针对对象的域(Field)
  • 2.只能配合volatile修饰的字段使用,否则会出异常Exception in thread “main” java.lang.IllegalArgumentException: Must be volatile type
  • 3.常见有AtomicReferenceFieldUpdate、AtomicIntegerFieldUpdate、AtomicLongFieldUpdate

二、代码示例

package com.learning.atomic;

import lombok.Data;

import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;

/**
 * @Author wangyouhui
 * @Description 原子字段更新
 **/
public class AtomicFieldUpdate {
    public static void main(String[] args) {
        Student student = new Student();
        AtomicReferenceFieldUpdater<Student, String> updater = AtomicReferenceFieldUpdater.newUpdater(Student.class, String.class, "name");
        updater.compareAndSet(student, null, "张三");
        System.out.println(student.getName());
    }
}

@Data
class Student{
    volatile String name;
}

http://www.niftyadmin.cn/n/698639.html

相关文章

从功能测试进阶自动化测试,熬夜7天整理出这一份3000字超全学习指南!

因为我一直在分享自动化测试技术&#xff0c;所以&#xff0c;经常被问到&#xff1a; 功能测试想转自动化&#xff0c;请问应该怎么入手&#xff1f;或者有哪些书推荐&#xff1f; 那么&#xff0c;接下来我就结合自己的经历聊一聊我是如何在工作中做自动化测试的。 测试新…

【Linux从入门到放弃】冯诺依曼体系机构、操作系统及管理的本质

&#x1f9d1;‍&#x1f4bb;作者&#xff1a; 情话0.0 &#x1f4dd;专栏&#xff1a;《Linux从入门到放弃》 &#x1f466;个人简介&#xff1a;一名双非编程菜鸟&#xff0c;在这里分享自己的编程学习笔记&#xff0c;欢迎大家的指正与点赞&#xff0c;谢谢&#xff01; 文…

python中设置conda虚拟环境

python中设置conda虚拟环境 import os import subprocess GPU_NUMBER [0,1,2,3] os.environ[“CUDA_VISIBLE_DEVICES”] “,”.join([str(s) for s in GPU_NUMBER]) os.environ[“NCCL_DEBUG”] “INFO” os.environ[“CONDA_OVERRIDE_GLIBC”] “2.56” os.environ[“LD_…

Linux系统开机启动详细流程

目录 Linux系统开机启动流程为什么要了解系统开机启动流程关机的命令开机流程图:开机自检&#xff08;Power-On Self-Test&#xff0c;POST&#xff09;BIOSROM和RAMBIOS的介绍CMOS的介绍&#xff1a;BIOS和CMOS的区别和联系如何进入BIOS系统&#xff1f;如何改BIOS的顺序以及为…

今天分享:配音软件哪个好

在数字化时代&#xff0c;视频内容的需求愈发增长。越来越多的人们创作和分享各种类型的视频&#xff0c;而其中一个重要的元素是声音。然而&#xff0c;有时候我们可能面临着一种情况&#xff1a;我们拍摄了一段令人惊艳的视频&#xff0c;但缺乏适合的配音或原声录音。这时&a…

当下的金融科技的外在表现形态更多的是数字化的形态

如果对以往的互联网金融的外在表现进行总结的话&#xff0c;它要么是互联网的一种&#xff0c;要么是金融的一种。显而易见的是&#xff0c;无论是以互联网&#xff0c;还是以金融来定义它&#xff0c;其实都是无法获得长久发展的。当从互联网金融过渡到金融科技时代之后&#…

SpringBoot3【① 特性介绍和快速入门】

SpringBoot3-特性介绍和快速入门 1、简介 1. 前置知识 Java17Spring、SpringMVC、MyBatisMaven、IDEA 2. 环境要求 环境&工具版本&#xff08;or later&#xff09;SpringBoot3.0.5IDEA2021.2.1Java17Maven3.5Tomcat10.0Servlet5.0GraalVMCommunity 22.3Native Build …

YOLO系列正负样本分配策略

1、YOLOv3 使用MaxIoUAssigner策略来给gt分配样本&#xff0c;基本上保证每个gt都有唯一的anchor对应&#xff0c;匹配的原则是该anchor与gt的IOU最大且大于FG_THRESH&#xff0c;这种分配制度会导致正样本比较少&#xff0c;cls和bbox分支训练起来可能比较慢。在剩余的anchor…