java unsafe获取指针_4.4.3 Java中的指针:Unsafe类

java多线程编程的无锁CAS底层都是通过 Unsafe进行操作的:源码如下

public final boolean compareAndSet(int expect, int update) {

return unsafe.compareAndSwapInt(this, valueOffset, expect, update);

}

this:我们要操作的对象

valueOffset:偏移量,方便我们快速查找这个对象信息

expect:期望值

update:要修改的值

其中 Unsafe还有几个方法如下

2dbc8bd10bd17fd7958f0297acfc597d.png

但是在jdk中我们并不能直接使用此类,而是必须通过 Unsafe.getUnsafe()获取,它是jdk的内部使用的专属类。

@CallerSensitive

public static Unsafe getUnsafe() {

Class var0 = Reflection.getCallerClass();

if(var0.getClassLoader() != null) {

throw new SecurityException("Unsafe");

} else {

return theUnsafe;

}

}

【实战Java高并发程序设计 1】Java中的指针:Unsafe类

是第4章的几点. 如果你对技术有着不折不挠的追求,应该还会特别在意incrementAndGet() 方法中compareAndSet()的实现.现在,就让我 ...

java中的“指针”

java中的"指针" 通常我们说java中没有指针,但是java中的"引用"就相当于指针,只是不称为指针而已. 错误例子 public List

Java中的不可变类理解

一.Java中的不可变类 不可变类(Immutable Objects):当类的实例一经创建,其内容便不可改变,即无法修改其成员变量. 可变类(Mutable Objects):类的实例创建后,可以修 ...

JAVA中封装JSONUtils工具类及使用

在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...

Java中直接输出一个类的对象

例如 package com.atguigu.java.fanshe; public class Person { String name; private int age; public Strin ...

Java中Date和Calender类的使用方法

查看文章     Java中Date和Calender类的使用方法 2009-10-04 20:49 Date和Calendar是Java类库里提供对时间进行处理的类,由于日期在商业逻辑的应用中占据着 ...

Java 中的静态嵌套类和非静态嵌套类

Java 中的静态嵌套类和非静态嵌套类 术语:嵌套类分为两类:静态嵌套类和非静态嵌套类.声明 static 的嵌套类称为静态嵌套类,非静态嵌套类也称为内部类. class OuterClass { p ...

Java中如何查看一个类依赖的包

Java中如何查看一个类依赖的包 如图, 我如何知道JSONArray是依赖的哪一个包呢,这里有两个json-lib包?   测试语句:   public static void main(Strin ...

问题009:java当中的关键字有哪些?在Editplus文本编辑软件中是什么颜色的?java当中的标识符有什么要求?Java中注释分为几类?

(1) public 公共的,表示访问的权限 (2) private 私有的,表示一种访问权限 (3) class 类关键字,表示定义一个类 java中的关键字都是大写的还是小写的?小写的,在Edit ...

Java 中常见的 final 类

Java 中常见的 final 类 java.lang 包 public final class Boolean extends Object implements Serializable, Com ...

随机推荐

cocos2d-x渲染流程

Cocos2Dx之渲染流程 发表于8个月前(2014-08-08 22:46)   阅读(3762) | 评论(2) 17人收藏此文章, 我要收藏 赞2 如何快速提高你的薪资?-实力拍“跳槽吧兄弟”梦 ...

XmlNodeList循环读取节点值

foreach (XmlNode item in XmlNodeList) { string oid = item.SelectSingleNode("oid").InnerTex ...

andriod 获取电池的信息

<?xml version="1.0"?>

SpringMvc学习心得(五)控制器产生与构建

SpringMvc学习心得(五)控制器产生与构建 标签: springspring mvc框架 2016-03-22 15:29 140人阅读 评论(0) 收藏 举报  分类: Spring(4)  ...

【Xamarin挖墙脚系列:对设备&sol;模拟器的查看调试监听】

原文:[Xamarin挖墙脚系列:对设备/模拟器的查看调试监听] 有时候我们需要查看模拟器中的文件,比如进行了文件IO操作,sqlite数据库的操作等.我们想查看内容,这时候,如何将内容导出来?由于A ...

&lpar;MariaDB&rpar;MySQL数据类型详解和存储机制

html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

Access Logging Tomcat

73.6 Configure Access Logging server.tomcat.accesslog.buffered=true # Buffer output such that it is ...

es6 generator函数

es6 新增了Generator函数,一种异步编程的解决方案 回顾一下,es6 提供了新的遍历方法,for of ,适用于各种数据集合,统一了遍历操作,原生支持for of 集合的数据集合有.数组,字 ...

&lbrack;BZ4923&rsqb;&lbrack;Lydsy1706月赛&rsqb;K小值查询

K小值查询 题面 维护一个长度为n的正整数序列a_1,a_2,...,a_n,支持以下两种操作: 1 k,将序列a从小到大排序,输出a_k的值. 2 k,将所有严格大于k的数a_i减去k. Input ...

sqlserver2008r2数据库使用触发器对sa及其他数据库账号访问进行IP限制

一.只允许指定IP访问数据库 创建测试账号 CREATE LOGIN testuser WITH PASSWORD = '123' GO CREATE TRIGGER [tr_connection_l ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值