
java多线程
文章平均质量分 84
个人渣记录仅为自己搜索用
不盈利,只为分享,转载.
找到的原版url的,尽量会贴原版url.
如有版权侵犯,请留言删除.
展开
-
Linux下查看消耗CPU的线程 占用 100% java jvm 堆栈
javaweb 项目部署后发现很耗cpu,需要查出问题所在写个测试程序,记相关步骤:故意写个死循环public class TestCpu { public static void main(String[] args) { while (true){ new Object(); } }}终端:top...原创 2020-04-09 16:54:23 · 704 阅读 · 0 评论 -
[转]自旋锁、排队自旋锁、MCS锁、CLH锁
自旋锁、排队自旋锁、MCS锁、CLH锁4条回复自旋锁(Spin lock)自旋锁是指当一个线程尝试获取某个锁时,如果该锁已被其他线程占用,就一直循环检测锁是否被释放,而不是进入线程挂起或睡眠状态。自旋锁适用于锁保护的临界区很小的情况,临界区很小的话,锁占用的时间就很短。简单的实现import java.util.concurrent.atomic.A转载 2014-06-12 22:15:40 · 11339 阅读 · 10 评论 -
[源代码]解析 SynchronousQueue 上界,下界.. 数据保存和数据传递. 阻塞队列. 有无频繁await?
简析SynchronousQueue,LinkedBlockingQueue,ArrayBlockingQueue三者都是blockingQueue.LinkedBlockingQueue,ArrayBlockingQueue有界,默认是Integer.Max;SynchronousQueue没什么界不界的概念.之所以这么原创 2014-06-22 20:23:08 · 3357 阅读 · 3 评论 -
log4j 阻塞 服务 callAppenders
log4j加锁, Category.callAppenders 因为Logger一般都是static ,所以会经常遇到logger被竞争的情况.我们系统中某个服务的流量是62481 /分钟 .导致loger被阻塞了长达27秒.原创 2015-12-17 20:11:25 · 4700 阅读 · 1 评论 -
理解object notifyAll 和 condition signalAll() 区别
见参考文章 Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Conditionhttp://www.cnblogs.com/dolphin0520/p/3920385.html总结: 都是会唤醒所有等待的线程.区别: object: 锁和等待可以分开.synconize() . condition 来自于某个lo转载 2016-05-04 16:11:21 · 3578 阅读 · 0 评论 -
何登成-库存热点更新. 有补充语音笔记
from 【阿里在线技术峰会】何登成:AliSQL性能优化与功能突破的演进之路https://yq.aliyun.com/articles/57900同系列,配合起来看,秒杀场景下MySQL的低效--原因和改进.pdf库存热点更新“双十一”时,有很多商品是大家都想去抢购的,库存在数据库内部只是一行标识商品剩余件数的记录,买商品的行为其实是大家在并发的扣减商品记录转载 2017-03-09 11:57:45 · 1549 阅读 · 0 评论 -
公平锁 非公平锁 使用场景
公平锁 非公平锁 使用场景.公平与非公平这个概念是针对锁的获取的,在绝对时间上,先对锁进行获取的请求一定先满足,那么这个锁是公平的,反之就是不公平的。公平锁的获取就是等待时间最长的线程最先获取锁,也就是锁获取是顺序的。但是公平锁的机制往往效率不高。但是非公平锁有可能导致:一直获取不到锁的现象:饿死:一些客户端不能获得服务,而其他客户端却可以;违反了公平原则---服务原创 2017-04-28 15:31:41 · 4140 阅读 · 0 评论 -
[源码]Condition的原理,简单案例(ArrayBlockingQueue),复杂案例(LinkedBlockingQueue).
Re'entrantLocklock=newReentrantLock(fair);Condition notEmpty=lock.newCondition(); //返回内部类 AbstractQueuedSyncronizer.ConditionObject 各自维护了两个队列.一个是阻塞同步队列 syncQueue 双向队列,一个是条件等待队列.原创 2014-06-26 16:08:13 · 2460 阅读 · 0 评论 -
Lock的lock/unlock, condition的await/singal 和 Object的wait/notify 的区别 - 永远是 ...
在使用Lock之前,我们都使用Object 的wait和notify实现同步的。举例来说,一个producer和consumer,consumer发现没有东西了,等待,produer生成东西了,唤醒。线程consumer线程producersynchronize(obj){ obj.wait();//没东西了,等待 }synchronize(ob转载 2017-04-13 23:19:02 · 3660 阅读 · 0 评论