JUC
JUC学习笔记
JFound
奋斗中的Javaer
展开
-
5.JUC整理笔记五之梳理Varhandle(下)
前文综合描述了 Varhandle 以及 Varhandle 能够做的事情,但是要了解并使用 Varhandle 并非是一件容易的事。总的来说,要想很好地使用 Varhandle ,必须先了解plain(普通方式)、opaque、release/acquire、volatile 的区别及使用。结合前面所学习的 jcstress ,本文用 jcsstress 作为并发测试工具来结合一些例子说明 plain、opaque、release/acqiure、volatile的特性。如果不知道 jcstress原创 2020-06-03 19:04:16 · 714 阅读 · 0 评论 -
4.JUC整理笔记四之梳理VarHandle(上)
前面整理完 Unsafe ,不得不去了解下 java.lang.invoke.Varhandle 。如前面文章所说, Unsafe 是不建议开发者直接使用的,因为 Unsafe 所操作的并不属于Java标准,会容易带来一些安全性的问题。JDK9 之后,官方推荐使用 java.lang.invoke.Varhandle 来替代 Unsafe 大部分功能,对比 Unsafe ,Varhandle 有着相似的功能,但会更加安全,并且,在并发方面也提高了不少性能。简介Varhandle是对变量或参数定义的变量原创 2020-05-30 16:55:16 · 537 阅读 · 0 评论 -
3.JUC整理笔记三之测试工具jcstress
并发测试工具Jcstress使用教程Jcstress 全称 Java Concurrency Stress,是一种并发压力测试工具,可以帮助研究JVM、java类库和硬件中并发的正确性。Wiki地址:https://wiki.openjdk.java.net/display/CodeTools/jcstressWiki中有一个Jcstress的example,可以根据example很方便入门使用jcstress。当然,我们也可以手动创建自己的Jcstress测试工程。Maven例子添加maven依原创 2020-05-30 16:53:09 · 1468 阅读 · 2 评论 -
2.JUC整理笔记二之聊聊volatile
要想学好JUC,还得先了解 volatile 这个关键字。了解 volatile ,我们从一个例子开始吧。本文不会很详细去说java内存模型,只是很简单地学习一下volatile一个例子package jfound.demo;import java.util.concurrent.TimeUnit;public class TaskRunner { private static boolean ready = true; public static void main(String原创 2020-05-30 16:49:28 · 183 阅读 · 0 评论 -
1.JUC整理笔记一之细说Unsafe
JUC(java.util.concurrent)的开始,可以说是从Unsafe类开始。Unsafe 简介Unsafe在sun.misc 下,顾名思义,这是一个不安全的类,因为Unsafe类所操作的并不属于Java标准,Java的一系列内存操作都是交给jvm的,而Unsafe类却能有像C语言的指针一样直接操作内存的能力,同时也会带来了指针的问题。过度使用Unsafe类的话,会使出错率变得更大,因此官方才命名为Unsafe,并且不建议使用,连注释的没有。而为了安全使用Unsafe,Unsafe类只允许原创 2020-05-30 16:44:57 · 198 阅读 · 0 评论