并行编程(1) - sum.msic.Unsafe 一

本文介绍了Java中的sum.msic.Unsafe类,这个类在java.util.concurrent包中有广泛应用。 Unsafe提供了硬件级别的原子操作,包含大量compareAndSwap*方法。虽然其方法公开,但通常只能在受信任的代码中使用。通过反射可以获取Unsafe实例,但使用时需谨慎,误用可能导致JVM崩溃。后续将分析Unsafe的详细应用和java.util.concurrent包的相关源码。
摘要由CSDN通过智能技术生成

      相信看过java源码的同学,对 sum.msic.Unsafe 这个类并不陌生,特别是在java.util.concurrent包有很多的使用。

 

      sum.msic.Unsafe源码:      http://www.docjar.com/html/api/sun/misc/Unsafe.java.html

                            javadoc:      http://www.docjar.com/docs/api/sun/misc/Unsafe.html

 

      sum.msic.Unsafe是一个执行低级别(硬件级别的原子操作),不安全操作的方法结合,因为java无法访问到系统底层,所以我们可以看到sum.msic.Unsafe类大部分都是native的本地方法,虽然该类的方法都是pulblic的,但是我们无法在编程中调用Unsafe(在JDK中可以任意调用),该类只能在授信的代码中使用它的实例。

 

     先介绍下CAS(Compare And Swap),按字面的理解就是比较并交换。CAS包含三个操作值:内存地址,新值,预期原值。如果内存地址中的值和预期原值一样,那么则会替换成新值,否则,将不做任何操作。在sum.msic.Unsafe 类中有大量的compareAndSwap***方法,例如:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值