java
文章平均质量分 74
reactivejun
这个作者很懒,什么都没留下…
展开
-
一次线上大日志打挂机器引发的思考
本文通过一次日志打满问题引发的一次思考,探讨了常用日志问题的解决套路,引申思考了2个技术问题,其一:如何大日志预防与监控;其二:老应用如何快速支持日志降级能力,并在最后提供了一点技术上的解法思路供参考。原创 2022-02-22 15:58:47 · 225 阅读 · 0 评论 -
Wait/Notify线程通信方式
线程状态机WATING和TIMED_WAITING被唤醒后,是进入BLOCKED阻塞状态,进入阻塞同步队列线程状态与锁状态关系● 锁池状态也就是同步队列,当调用notify和notifyall时,线程只是先进入了BLOCKED状态,只有拿到对象o的锁,才能唤醒线程;当调用wait时,会释放锁,并进入等待队列,同时线程状态变为WAITING。● wait状态唤醒有三种方式○ being notified, 即调用notify()或notifyAll()○ interrupted, 这种方式会抛原创 2022-03-09 23:36:16 · 171 阅读 · 0 评论 -
LockSupport线程阻塞器
语义说明线程阻塞器,用于锁和同步场景。底层有个二元信号量(即1个牌),当持有令牌时,调用park会直接返回,否则阻塞。当执行unpark时,可以获取令牌。该类解决了阻塞轮询问题(busy wait)。park(blocker)设置阻塞对象(实际写入Thread.parkBlocker属性),一般就用this即可,用于记录阻塞原因,可以通过getBlocker(Thread)获取park返回方式有Thread.interrupt()unpark本身持有令牌超时/到时间parkUntil,并不原创 2022-03-09 23:30:52 · 330 阅读 · 0 评论