![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发
zyc920716
这个作者很懒,什么都没留下…
展开
-
Spring @Scheduled线程模型探究 - 改为多线程
通过上一节分析源码我们知道,执行任务的是TaskScheduler的实现类,在ScheduledAnnotationBeanPostProcessor#finishRegistration()方法中会设置TaskScheduler。首先如果注册器ScheduledTaskRegistrar中的scheduler成员为空才会从Spring上下文中加载我们只需要为ScheduledTaskReg...原创 2020-03-14 20:19:48 · 445 阅读 · 1 评论 -
java 线程的几种状态
java 线程的几种状态java thread的运行周期中, 有几种状态, 在 java.lang.Thread.State 中有详细定义和说明:NEW 状态是指线程刚创建, 尚未启动RUNNABLE 状态是线程正在正常运行中, 当然可能会有某种耗时计算/IO等待的操作/CPU时间片切换等, 这个状态下发生的等待一般是其他系统资源, 而不是锁, Sleep等BLOCKED 这转载 2017-06-08 11:30:08 · 359 阅读 · 0 评论 -
如何聪明地使用锁
竞争锁是造成多线程应用程序性能瓶颈的主要原因 区分竞争锁和非竞争锁对性能的影响非常重要。如果一个锁自始至终只被一个线程使用,那么 JVM 有能力优化它带来的绝大部分损耗。如果一个锁被多个线程使用过,但是在任意时刻,都只有一个线程尝试获取锁,那么它的开销要大一些。我们将以上两种锁称为非竞争锁。而对性能影响最严重的情况出现在多个线程同时尝试获取锁时。这种情况是 JVM 无法优化的,而且通常会发生从用户转载 2017-11-10 16:07:12 · 1706 阅读 · 0 评论 -
控制三个线程交替打印ABC
package me.zyc.thread.test;import java.util.concurrent.locks.AbstractQueuedSynchronizer.ConditionObject;import java.util.concurrent.locks.ReentrantLock;public class LoopRunByOrder { private s原创 2018-01-10 17:38:59 · 441 阅读 · 0 评论