并发编程
文章平均质量分 64
weixin_43405469
这个作者很懒,什么都没留下…
展开
-
多线程顺序执行
https://mp.weixin.qq.com/s/dut1XSQk04gGn17E69vqgA转载 2021-08-05 23:44:37 · 41 阅读 · 0 评论 -
异步编程利器:CompletableFuture详解
https://mp.weixin.qq.com/s/rsiXMBlxFMExa_OWtUiMEA转载 2021-07-31 14:51:57 · 59 阅读 · 0 评论 -
线程池使用
https://mp.weixin.qq.com/s?__biz=Mzg2MjEwMjI1Mg==&mid=2247510570&idx=2&sn=238bade2a3e757e7026f45f4e4260593&chksm=ce0e1da9f97994bfae6633fd7bbb2caad5d236d34ddc29c7575f6b0c179484b015989c5f42df&mpshare=1&scene=24&srcid=0728nG4kmi5..转载 2021-08-12 23:20:16 · 128 阅读 · 0 评论 -
volatile
Volatile可能是面试里面必问的一个话题吧,对他的认知很多朋友也仅限于会用阶段,今天我们换个角度去看看。先来跟着丙丙来看一段demo的代码:你会发现,永远都不会输出有点东西这一段代码,按道理线程改了flag变量,主线程也能访问到的呀?为会出现这个情况呢?那我们就需要聊一下另外一个东西了。JMM(JavaMemoryModel)JMM:Java内存模型,是java虚拟机规范中所定义的一种内存模型,Java内存模型是标准化的,屏蔽掉了底层不同计算机的区别(注意这个跟JVM完全不是一个转载 2021-07-27 18:15:22 · 114 阅读 · 0 评论 -
synchronized
偏向锁的撤销 是等到有竞争出现的时候才释放 锁。需要等到全局安全点 就是此时没有字节码正在执行,它会首先暂停拥有偏向锁的线程,然后检查持有偏向锁的线程是否或者,如果线程不处于活动状态,则把对象头设成无锁状态(这样别的线程就可以继续使用偏向锁) 别的线程来的时候 如果发现对象头的ID 不是自己 他会用CAS尝试替换对象头中的线程ID 可能是用CAS(无锁,该线程的 ID) 如果还活着 偏向锁的栈会被执行,这样对象头中的Mark word 要么重新偏向别的线程要么就标记对象不适合作为偏向锁http...转载 2021-07-27 16:59:55 · 30 阅读 · 0 评论 -
LockSupport
本文章将要介绍的内容有以下几点,读者朋友也可先自行思考一下相关问题: 线程中断 interrupt 方法怎么理解,意思就是线程中断了吗?那当前线程还能继续执行吗? 判断线程是否中断的方法有几个,它们之间有什么区别? LockSupport的 park/unpark 和 wait/notify 有什么区别? sleep 方法是怎么响应中断的? park 方法又是怎么响应中断的? 线程中断相关方法线程中和中断相关的方法有三个,分别介绍如下:1) inte转载 2021-07-27 15:22:43 · 50 阅读 · 0 评论 -
线程的五种状态
1) 新建当用new关键字创建一个线程时,还没调用start 就是新建状态。2) 就绪调用了 start 方法之后,线程就进入了就绪阶段。此时,线程不会立即执行run方法,需要等待获取CPU资源。3) 运行当线程获得CPU时间片后,就会进入运行状态,开始执行run方法。4) 阻塞当遇到以下几种情况,线程会从运行状态进入到阻塞状态。 调用sleep方法,使线程睡眠。 调用wait方法,使线程进入等待。 当线程去获取同步锁的时候,锁正在被其他线程持有...转载 2021-07-27 15:03:48 · 23554 阅读 · 3 评论 -
CountDownLatch,CyclicBarrier,Semaphore
一、CountDownLatch是一个同步辅助器,允许一个或多个线程一直等待,直到其他线程的操作全部完成。常用方法public void await() throws InterruptedException { sync.acquireSharedInterruptibly(1);}public void countDown() { sync.releaseShared(1);}当一个线程调用await方法时,就会阻塞当前线程。每当有线程调用一次 countDown 方法时,转载 2021-07-27 14:44:04 · 36 阅读 · 0 评论 -
AQS的基本原理
AQS的定义AQS 是⼀个⽤来构建锁和同步器的框架,使⽤ AQS 能简单且⾼效地构造出应⽤⼴泛的⼤量的同步器,⽐如我们提到的 ReentrantLock ,countdownlatchcyclicbarrierAQS 核⼼思想如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的⼯作线程,并且将共享资源设置为锁定状态。如果被请求的共享资源被占⽤,那么就需要⼀套线程阻塞等待以及被唤醒时锁分配的机制,这个机制 AQS 是⽤ CLH 队列锁实现的,即将暂时获取不到锁的线程加⼊到队列中。.原创 2021-07-27 14:22:09 · 2445 阅读 · 0 评论