java高并发系列 - 第22天:JUC底层工具类Unsafe

java高并发系列 - 第22天:JUC底层工具类Unsafe

这是java高并发系列第22篇文章,文章基于jdk1.8环境。

本文主要内容

  1. Unsafe基本介绍
  2. 获取Unsafe实例
  3. Unsafe中的CAS操作
  4. Unsafe中原子操作相关方法介绍
  5. Unsafe中线程调度相关方法介绍
  6. park和unpark示例
  7. Unsafe锁示例
  8. Unsafe中对volatile的支持

基本介绍

最近我们一直在学习java高并发,java高并发中主要涉及到类位于java.util.concurrent包中,简称juc,juc中大部分类都是依赖于Unsafe来实现的,主要用到了Unsafe中的CAS、线程挂起、线程恢复等相关功能。所以如果打算深入了解JUC原理的,必须先了解一下Unsafe类。

先上一幅Unsafe类的功能图:
java高并发系列 - 第22天:JUC底层工具类Unsafe_第1张图片
Unsafe是位于sun.misc包下的一个类,主要提供一些用于执行低级别、不安全操作的方法,如直接访问系统内存资源、自主管理内存资源等,这些方法在提升Java运行效率、增强Java语言底层资源操作能力方面起到了很大的作用。但由于Unsafe类使Java语言拥有了类似C语言指针一样操作内存空间的能力,这无疑也增加了程序发生相关指针问题的风险。在程序中过度、不正确使用Unsafe类会使得程序出错的概率变大,使得Java这种安全的语言变得不再“安全”,因此对Unsafe的使用一定要慎重。

你可能感兴趣的:(线程,java,python,开发语言)