
线程
爱吃土豆的小师傅
这个作者很懒,什么都没留下…
展开
-
Java并发包之CountDownLatch,Semaphore,CyclicBarrier用法
写在前面:CountDownLatch计数器闭锁是一个能阻塞主线程,让其他线程满足特定条件下主线程再继续执行的线程同步工具。Latch闭锁的意思,是一种同步的工具类。类似于一扇门:在闭锁到达结束状态之前,这扇门一直是关闭着的,不允许任何线程通过,当到达结束状态时,这扇门会打开并允许所有的线程通过。且当门打开了,就永远保持打开状态。CountDowmLatch是一种灵活的闭锁实现,包含一个计数器,该计算器初始化为一个正数,表示需要等待事件的数量。countDown方法递减计数器,表示有一个事件发生原创 2020-12-21 16:08:53 · 198 阅读 · 0 评论 -
JVM的锁(1) - 常见的几种锁
写在前面:锁是多线程并发访问共享资源产生的概念。假如没有多线程,没有并发,那要锁干吗?不纯粹浪费时间吗。就好比,世界上没有小偷,每家每户还需要上锁吗(杠精请走开)?一,synchronizedsynchronized 关键字是一把经典的锁,也是我们平时用得最多的。在 JDK1.6 之前, syncronized 是一把重量级的锁,不过随着 JDK 的升级,也在对它进行不断的优化,如今它变得不那么重了,甚至在某些场景下,它的性能反而优于轻量级锁。在加了 syncronized 关键字的方法、代码块原创 2020-12-18 19:30:37 · 2480 阅读 · 1 评论 -
java 锁 Lock接口详解
一:java.util.concurrent.locks包下常用的类与接口(lock是jdk 1.5后新增的) (1)Lock和ReadWriteLock是两大锁的根接口,Lock代表实现类是ReentrantLock(可重入锁),ReadWriteLock(读写锁)的代表实现类是ReentrantReadWriteLock。 Lock 接口支持那些语义不同(重入、公平等)的锁...原创 2020-04-01 10:18:40 · 329 阅读 · 0 评论 -
jstack分析线程状态
背景记得前段时间,同事说他们测试环境的服务器cpu使用率一直处于100%,本地又没有什么接口调用,为什么会这样?cpu使用率居高不下,自然是有某些线程一直占用着cpu资源,那又如何查看占用cpu较高的线程?import java.util.concurrent.Executor;import java.util.concurrent.Executors;public clas...原创 2020-03-30 18:08:27 · 282 阅读 · 0 评论 -
java线程-wait,notify等方法详解以及状态转换
写在前面:一,解释一下wait(), wait(long minutes),notify(),notifyAll(),yield()的含义与区别:1. wait()的作用是让当前线程进入等待状态,同时,wait()也会让当前线程释放它所持有的锁。“直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法”,当前线程被唤醒(进入“就绪状态”)2.wait(long...原创 2020-03-30 17:59:12 · 1523 阅读 · 0 评论