![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发
zwanying
这个作者很懒,什么都没留下…
展开
-
unlock 实现
unlock 实现深入浅出 Java 并发 学习笔记unlock 通过 AQS release 方法实现:如果释放锁成功:队列头结点非空且能被唤醒,唤醒下一个节点(给队列头等待节点分配资源)。public final boolean release(int arg) { if (tryRelease(arg)) { Node h = head; if (h != null && h.waitStatus != 0) unparkSuccessor(h)原创 2022-02-20 20:49:09 · 260 阅读 · 0 评论 -
Atomic 原子操作
Atomic 原子操作AtomicIntegerArray 基本操作同 AtomicInteger 类似,只是参数增加了 int i ,表示对数组下标为 i 的位置取值或赋值。import java.util.concurrent.atomic.AtomicIntegerArray;import static org.junit.Assert.assertEquals;class Test { public static void main(String args[]) throws Int原创 2022-02-14 21:07:35 · 1203 阅读 · 0 评论 -
AtomicInteger 的使用
AtomicInteger 的使用为什么需要java.util.concurrent.atomic.AtomicInteger++i,–i 不是线程安全的,涉及到三步,1、获取 i 值 2、进行运算 3、写回新值 。多线程情况下,结果超出预期。AtomicInteger 提供了哪些方法代码注释里标明了提供的方法。边使用,边熟悉。import static org.junit.Assert.*;import java.util.concurrent.atomic.AtomicInteger;p原创 2022-02-13 22:12:46 · 320 阅读 · 0 评论 -
并发编程基础(三)
并发编程基础(三)守护线程 用户线程守护线程:daemon 线程,实现通用功能的后台进程,非必须。例如 垃圾回收用户线程:例如,main 方法,用户进程执行完成后守护进程自动销毁,JVM退出。使用设置一个线程为守护线程,需在 start() 方法线程执行之前。 t1.setDaemon(true);设置为守护线程后,即使没执行完成,在主线程执行完成之后,自动销毁,JVM 也会退出。场景可随时关闭,不会出现不良后果。一般是为用户线程服务,低优先级,垃圾回收,心跳监测,临时数据清理等。Th原创 2021-12-29 20:33:08 · 201 阅读 · 0 评论