最新文章列表

Unsafe

Unsafe 一、总结 1.jdk 1.8.0 2.不可仿照 AtomicInteger 的方式直接调用 Unfase // 声明全局的静态变量,运行时会出现异常 SecurityException("Unsafe") private ...
mingyun 评论(0) 有415人浏览 2017-11-28 21:04

Java中的Unsafe

在阅读AtomicInteger的源码时,看到了这个类:sum.msic.Unsafe,之前从没见过。所以花了点时间google了一下。   Unsafe的源码:http://www.docjar.com/html/api/sun/misc/Unsafe.java.html   Unsafe源码中的描述如下:    写道 A collection of methods for pe ...
IXHONG 评论(0) 有841人浏览 2016-09-22 22:50

Unsafe的用法

我们写程序,一般不直接使用Unsafe类。 JDK的类特别是并发框架中大量使用到Unsafe的功能,比如:AtomicInteger, LockSupport.所以,了解Unsafe提供的功能与机制是非常必要的。 如何获取Unsafe对象? Field theUnsafeInstance = Unsafe.class.getDeclaredField("theUnsafe&quo ...
xiemingmei 评论(0) 有1169人浏览 2015-12-04 14:57

CAS自定义线程安全的计数器

写了一个线程安全的计数器(用锁显得多没有水平),非阻塞的,通过自旋的CAS操作达到数据一致性的效果 开始先说下原子变量和锁的比较 锁在高竞争的时候效率会高于原子变量,但是在中低竞争的时候原子变量的性能会好一些 类比:(交通拥堵时,交通信号灯能够实现更高的吞吐量,而在低拥堵时,环岛能实现更高的吞吐量) 知识点: UnSafe的CAS操作 unsafe.compareAndSwapInt(t ...
shifulong 评论(0) 有2209人浏览 2015-10-10 17:36

Java直接内存读写

        在Hotspot JVM上,我们能够直接对内存进行读写操作。该类的allocateMemory方法用于申请分配内存,putAddress和getAddress方法用于对直接内存进行读写。         下面将通过sun.misc.Unsafe演示直接读写内存的例子。         注意:这只是一个例子,只是用来验证通过sun.misc.Unsafe来实现直接读写内存的可能 ...
bijian1013 评论(0) 有6404人浏览 2015-08-04 20:47

sun unsaft 有关的好文章

http://blog.csdn.net/fenglibing/article/details/17138079
lyp2002924 评论(0) 有650人浏览 2014-12-18 11:40

比反射更高效的修改字段值的方法

        开发过程中,不少情况下都会遇到需要通过反射修改对象字段值的情况,但是很多情况下,直接反射效率比较低,而你如果读过jdk代码,可能多少会发现jdk里边经常闪现这UNSAFE的的身影,比如ConcurrentLinkedQueue里边到处都是。         为啥jdk里边到处都用这个东西呢?YY下,一方面是因为效率高,另一方面是因为它提供了很强大底层操作的功能,比如不用Atom ...
yueyemaitian 评论(0) 有1374人浏览 2014-03-13 20:49

ConcurrentLinkedQueue

成员:head tail 内部类:Node  item和next,Itr implements Iterator add  offer    利用UNSAFE.compareAndSwapObject(p, nextOffSet, null, newNode)(p表示遍历整个链表一直到next为null为止的Node) 如果设置成功,调用UNSAFE.compareAndSwapObje ...
xussen 评论(0) 有697人浏览 2014-01-08 09:41

一种使用unsafe类修改变量值的方式

本例子演示了另外一种修改变量值的方式,希望可以让读者从另外一个角度看待变量,欢迎大家讨论。 请看例子   package concurrentTest; import java.lang.reflect.Field; import sun.misc.Unsafe; /** * jdk 提供了一个unsafe类来直接通过 内存地址来操作变量 * 该例子演示了 另外一种 ...
liuInsect 评论(0) 有1561人浏览 2013-12-11 14:42

利用sun.misc.Unsafe实现一次类混淆(Type Confusion)

   unsafe是jdk里面非常有意思的函数,不仅仅是名字。具体功能大家可以搜一下看看,简单来说就是,这个类提供了直接操作硬件的方法。     我这边简单利用unsafe的putObject方法,实现一次类混淆,有点儿意思。     代码如下:     Dingo.java : (作用是跑一个计算器)     package ding.yang.controller; import jav ...
dingody 评论(0) 有1795人浏览 2013-11-05 10:15

Java直接内存读写的例子

在Hotspot JVM上,我们能够直接对内存进行读写操作。该类的allocateMemory方法用于申请分配内存,putAddress和getAddress方法用于对直接内存进行读写。 本文将通过sun.misc.Unsafe给出一个直接读写内存的例子。 注意:这只是一个例子,只是用来验证通过sun.misc.Unsafe来实现直接读写内存的可能性。但是,这样做并没有安全保证,而且稍微有点疏忽 ...
MouseLearnJava 评论(5) 有6988人浏览 2013-08-09 09:58

java 中的Unsafe

在阅读AtomicInteger的源码时,看到了这个类:sum.msic.Unsafe,之前从没见过。所以花了点时间google了一下。   Unsafe的源码:http://www.docjar.com/html/api/sun/misc/Unsafe.java.html   Unsafe源码中的描述如下:    写道 A collection of methods for p ...
aswang 评论(2) 有32744人浏览 2012-12-05 22:25

关于 sun.misc.Unsafe

今天在看java.util.concurrent.atomic包的源代码的时候看到原来这个包的底层都调用了sun.misc.Unsafe这个类,这个类其实是个native的实现类,他的神奇之处就在于它可以直接访问内存地址。如果你能直接调用它,那么就意味着你可以绕开一切lock而直接操作地址,虽然危险却有相当的性能吸引力。( 源代码 )  它十分高效,因为它的实现基于CAS (Compare And ...
JackyCheng2007 评论(1) 有4670人浏览 2012-04-03 15:31

最近博客热门TAG

Java(141747) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54918) .net(54785) Web(54513) 工作(54116) Linux(50906) Oracle(49876) 应用服务器(43288) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37268) 数据结构(36423)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics