![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 89
东北亚大中华区首席搬砖工具人
要饭,要饭,精通C++
展开
-
Java并发编程之CountDownLatch/CyclicBarrierDemo/SemaphoreDemo详解
CountDownLatch详解什么是CountDownLatch?代码说明一 :班长锁门代码说明二:秦国统一六国什么是CyclicBarrierDemo?代码说明一:集齐7个龙珠,召唤神龙代码说明二:模拟赛马什么是SemaphoreDemo?代码说明一:抢车位什么是CountDownLatch?让一线程阻塞直到另一些线程完成一系列操作才被唤醒。CountDownLatch主要有两个方法(await(),countDown())。当一个或多个线程调用await()时,调用线程会被阻塞。其它线程调用c原创 2021-06-11 22:53:18 · 250 阅读 · 0 评论 -
Java之LockSupport详解
文章目录前言一、LockSupport是什么?二、Object中wait和Notify限制1.代码模拟三、Condition接口中的await后signal使用限制1.代码模拟2.存在问题四、LockSupport方法介绍1.传统的synchronized和Lock实现等待唤醒通知的约束2. LockSupport类中的park等待和unpark唤醒3.代码模拟4.重点说明5.形象的理解6.面试题前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要转载 2021-06-11 22:52:26 · 501 阅读 · 0 评论 -
Java面试之线程池详细
ああ原创 2021-04-07 20:17:32 · 97 阅读 · 0 评论 -
Java面试之原子类AtomicInteger的ABA问题
原子类AtomicInteger的ABA问题连环套路从AtomicInteger引出下面的问题CAS -> Unsafe -> CAS底层思想 -> ABA -> 原子引用更新 -> 如何规避ABA问题ABA问题是什么狸猫换太子假设现在有两个线程,分别是T1 和 T2,然后T1执行某个操作的时间为10秒,T2执行某个时间的操作是2秒,最开始AB两个线程,分别从主内存中获取A值,但是因为B的执行速度更快,他先把A的值改成B,然后在修改成A,然后执行完毕,T1线程在1原创 2021-03-14 10:12:44 · 856 阅读 · 0 评论 -
Java面试之谈谈对CAS的理解
CAS底层原理概念CAS的全称是Compare-And-Swap,它是CPU并发原语它的功能是判断内存某个位置的值是否为预期值,如果是则更改为新的值,这个过程是原子的CAS并发原语体现在Java语言中就是sun.misc.Unsafe类的各个方法。调用UnSafe类中的CAS方法,JVM会帮我们实现出CAS汇编指令,这是一种完全依赖于硬件的功能,通过它实现了原子操作,再次强调,由于CAS是一种系统原语,原语属于操作系统用于范畴,是由若干条指令组成,用于完成某个功能的一个过程,并且原语的执行必须是连续原创 2021-03-13 14:25:54 · 227 阅读 · 0 评论