随笔分类 -  Java后端:并发编程

synchronized、volatile,是如何解决共享变量内存可见性问题的?
摘要:关键字 | 如何解决共享变量内存可见性问题的? | synchronized | 进入synchronized块的内存语义是把在synchronized块内使用到的变量从线程的工作内存中清除,这样在synchronized块内使用到该变量时就不会从线程的工作内存中获取,而是直接从主内存中获取。退出s 阅读全文

posted @ 2020-04-24 12:08 cag2050 阅读(374) 评论(0) 推荐(0) 编辑

Thread 类中,@sun.misc.Contended("tlr") 里值 tlr 的含义
摘要:@sun.misc.Contended 的value,含义是一个组 猜测 tlr 意思是:ThreadLocalRandom。 出处:https://stackoverflow.com/questions/34529036/what is sun misc contended annotations 阅读全文

posted @ 2020-04-23 18:12 cag2050 阅读(594) 评论(0) 推荐(1) 编辑

并发包 J.U.C 中常用的类
摘要:并发包 J.U.C 中常用的类 | 含义 | ThreadLocalRandom | 是JDK 7在JUC包下新增的随机数生成器,它弥补了Random类在多线程下的缺陷。 AtomicInteger、AtomicLong、AtomicBoolean 等 | 原子性操作类 阅读全文

posted @ 2020-04-23 16:27 cag2050 阅读(381) 评论(0) 推荐(0) 编辑

并发编程线程基础:wait、notify、notifyAll、join、sleep、yield、interrupt、ThreadLocal
摘要:知识点 | 是否静态方法 | 用法 | 说明 | | | wait | 否 | obj.wait(); | 当一个线程调用一个共享变量的wait()方法时,该调用线程会被阻塞挂起;需要注意的是,如果调用wait()方法的线程没有事先获取该对象的监视器锁,则调用wait()方法时调用线程会抛出Ille 阅读全文

posted @ 2020-04-22 10:29 cag2050 阅读(183) 评论(0) 推荐(0) 编辑

Java 中常用锁实现的方式有两种:1. 用并发包中的锁类;2. 使用同步代码块
摘要:Java 中常用锁实现的方式有两种: 1. 用并发包中的锁类; 并发包的类族中,Lock 是 JUC 包的顶层接口,它的实现利用了 volatile 的可见性。 2. 使用同步代码块 阅读全文

posted @ 2020-01-28 12:49 cag2050 阅读(296) 评论(0) 推荐(0) 编辑

AQS 抽象队列同步器(Abstract Queued Synchronizer) 知识点
摘要:AQS的主要使用方式是继承,子类通过继承同步器并实现它的抽象方法来管理同步状态。 AQS使用一个int类型的成员变量state来表示同步状态,当state 0时表示已经获取了锁,当state = 0时表示释放了锁。它提供了三个方法(getState()、setState(int newState)、 阅读全文

posted @ 2019-11-05 11:06 cag2050 阅读(189) 评论(0) 推荐(0) 编辑

Java 并发,相关术语
摘要:Java 并发,相关术语: 术语 | 作用 | synchronize | 可修饰方法、代码块、类;介绍:https://www.cnblogs.com/zyxiaohuihui/p/9096882.html Lock | 可代替 synchronize volatile | 修饰变量;多线程访问时 阅读全文

posted @ 2019-07-23 16:28 cag2050 阅读(171) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示