Unsafe(转载)
Unsafe unsafe = Unsafe.getUnsafe();
java.lang.SecurityException: Unsafe
at sun.misc.Unsafe.getUnsafe(Unsafe.java:68)
at Person.main(Person.java:37)
这样则正确
Unsafe unsafe =null;
try{
Class<?> clazz = Unsafe.class;
Field f;
f = clazz.getDeclaredField("theUnsafe");
f.setAccessible(true);
unsafe = (Unsafe) f.get(clazz);
} catch (IllegalAccessException e) {
e.printStackTrace();
}catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchFieldException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
2.API介绍:
boolean compareAndSwapInt(Object obj,long fieldoffset, int expect, int update);
修改 obj对象的(fieldoffset)Int 属性值,若属性值为expect,则修改为 update ,返回true,若属性值不为expect则不修改,返回false
boolean compareAndSwapObject(Object obj,long Fieldoffset, Object expect, Object update);
修改 obj对象的(fieldoffset)属性值,若属性值为expect,则修改为 update ,返回true,若属性值不为expect则不修改,返回false
long objectFieldOffset (Field field);
得到 filed在对象中的偏移
void park(boolean flag, long time);
使当前线程等待
void unpark(Thread thread)
使当前线程停止等待
Object getObject(Object obj,long fieldoffset);
得到 obj 的 偏移为fieldoffset 的属性
int getInt(Object obj,long fieldoffset);
得到 obj 的 偏移为fieldoffset 的int属性
Unsafe(转载)相关推荐
- C# 中实现单例模式
文章目录 简介 不安全线程的单例模式 简单安全线程带锁 双重检查 - 带锁 安全初始化 安全并且懒汉式静态初始化 带泛型的懒汉式单例 异常 提高效率 总结 简介 单例模式是软件工程中广为人知的设计模式 ...
- C# 语句中的各种单例模式代码
1.非线程安全(经典模式),但没有考虑线程安全,在多线程时可能会出问题,不过还从没看过出错的现象. /// <summary>/// 单例模式的实现/// </summary> ...
- C#中的代理(delegate)[转载]
C#中取消了指针的概念.对指针恋恋不舍的程序员可以有两种解决方法:声明"非安全"(unsafe)代码段然后在其中使用指针或者使用C#的一个引用类型--"代理&qu ...
- [转载]使用C#的BitmapData
我在前两篇图片处理的文章里几乎都用BitmapData来做图片处理的,那么这个东东究竟是个什么玩意儿呢? C#好是好,但处理图片时一个像素一个像素的操作像素可不是一般的慢,尤其是数码相机拍摄的大图片. ...
- Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.
一.问题描述 014-12-15 20:00:29 4398 [Warning] Unsafe statement written to the binary log using statement ...
- openJDK之sun.misc.Unsafe类CAS底层实现
2019独角兽企业重金招聘Python工程师标准>>> 注:这篇文章参考了https://www.cnblogs.com/snowater/p/8303698.html,而后自己结合 ...
- Access restriction: The type Unsafe is not accessible due to restriction on required library
无事下载Google的common包guarva玩玩,丢到eclipse中就编译报错:Access restriction: The type Unsafe is not accessible due ...
- Java并发编程,无锁CAS与Unsafe类及其并发包Atomic
为什么80%的码农都做不了架构师?>>> 我们曾经详谈过有锁并发的典型代表synchronized关键字,通过该关键字可以控制并发执行过程中有且只有一个线程可以访问共享资源,其 ...
- 实用C#编程规范(转载)
1 概述 1.1 规范制定原则 1) 方便代码的交流和维护. 2) 不影响编码的效率,不与大众习惯冲突. 3) 使代码更美观.阅读更方便. 4) 使代码的逻辑更清晰.更易于理解. 1.2 术语定义 1 ...
最新文章
- 低耗时、高精度,微软提基于半监督学习的神经网络结构搜索算法
- P3809【模板】后缀排序
- C#字符串及数组操作
- Java多线程编程实战指南+设计模式篇pdf
- 你将被重新带回到 那个燃烧彼此的世界
- 图像相似度测量与模板匹配总结
- CodeForces - 1141D Colored Boots(暴力+水题)
- C#vs Java哪一个更快? 将25k C#转换为Java(2)
- 华为配备鸿蒙系统的手机,华为P50/新平板双双来袭!全球首发鸿蒙系统:配置都非常强悍...
- python求解二次规划_Python二次规划和线性规划使用实例
- 最接近WeChat的全屏自定义相机(Custom Camera)
- WebAssembly 开启微服务新时代
- 二、Python自动化运维入门(函数、模块)
- Semantic Analysis
- 对此人的嚣张你们怎么看
- 老男孩学python_在老男孩如何学习python?老男孩python课程好吗、
- 手写数字图像识别-SVM算法投票法实现多分类
- php实现登录验证码_php如何实现登录验证码
- 关于数学建模(或科研论文)的画图学习建议
- postgres中的中文分词zhparser