美文网首页
Java9中的VarHandle

Java9中的VarHandle

作者: zhaozhaoicode | 来源:发表于2020-05-08 23:48 被阅读0次

VarHandle的特点

  • 普通变量的原子操作
  • 因为直接操作二进制码比反射要快
import java.lang.invoke.MethodHandles;
import java.lang.invoke.VarHandle;

public class TestHelloVarHandle {

    int x = 8;

    private static VarHandle handle;

    static {
        try {
            handle = MethodHandles.lookup().findVarHandle(TestHelloVarHandle.class, "x", int.class);
        } catch (NoSuchFieldException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        TestHelloVarHandle t = new TestHelloVarHandle();

        //plain read / write
        System.out.println((int)handle.get(t));
        handle.set(t,9);
        System.out.println(t.x);

        handle.compareAndSet(t, 9, 10);
        System.out.println(t.x);

        handle.getAndAdd(t, 10);
        System.out.println(t.x);

    }
}

相关文章

  • Java9中的VarHandle

    VarHandle的特点 普通变量的原子操作 因为直接操作二进制码比反射要快

  • VarHandle使用

    Varhandle 为java9新加功能,用来代替 Unsafe 供开发者使用。直接上代码: 变量定义 VarHa...

  • Java9新特性系列(序)

    Java9的发布 经过4次跳票,历经曲折的Java9 终于终于在2017年9月21日发布。 Java 9 中哪些不...

  • Java9新特性简介

    Java9 Java9正式发布于2017年9月21日,Java9 带来了很多重大的变化,其中最重要的改动是Java...

  • Unsafe -> VarHandle

    今天看并发编程的艺术的时候,拿出jdk的源码对照着看,然后发现AbstractQueuedSynchronizer...

  • java并发--CompletableFuture

    1、介绍 CompletabelFure在java8中提出,在java9中完善CompletableFuture类...

  • Java9初探(二)

    再谈Java9模块化 在之前已经提到了作为java9最重要的特性就是模块化。有了模块化java9变得更轻量级。在编...

  • JAVA9模块化详解(一)——模块化的定义

    JAVA9模块化详解(一)——模块化的定义 前言 java9已经出来有一段时间了,今天向大家介绍一下java9的一...

  • Java9 Flow API(译)

    原文链接 这篇文章中,会展示一个Java9中FlowAPI的列子,通过Publisher和Subscriber接口...

  • java9 模块化初体验

    java9发布有一段时间了,模块化是java9的一个重要新特性。今天有时间,就体验一把java9的模块化功能。 创...

网友评论

      本文标题:Java9中的VarHandle

      本文链接:https://www.haomeiwen.com/subject/kuvcnhtx.html