自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 Future获取子线程的执行结果

获取子线程的执行结果future和CallableRunnable的缺陷@FunctionalInterfacepublic interface Runnable { public abstract void run();}不能返回一个返回值不能抛出checked ExceptionCallable接口类似于Runnable,被其他线程执行的任务实现call方法,有返回值@FunctionalInterfacepublic interface Callable&lt

2020-05-16 17:38:35 1562

原创 并发灵魂AQS

并发灵魂AQSSemaphore,CountDownLatch,ReentrantLock 内部有一个Sync类,Sync类继承了AQSAQS内部原理分析AQS最核心的三大部分state控制线程抢锁和配合FIFO队列期望协作工具类去实现的获取/释放等重要方法state private volatile int state;state的具体含义,会根据具体实现类的不同而不同Semaphore里,它标识"剩余的数量"countDownLatch里,表示"还需要倒数的数量"

2020-05-14 16:06:17 138

原创 线程协作,控制并发流程(CountDownLatch,Semaphore,Condition,CyclicBarrier)

线程协作,控制并发流程控制并发流程的工具类,作用就是帮助我们更容易得让线程之间合作,让线程之间相互配合,来满足业务逻辑常见并发控制工具类CountDownLatch 计数器countDownLatch这个类使一个线程等待其他线程各自执行完毕后再执行。是通过一个计数器来实现的,计数器的初始值是线程的数量。每当一个线程执行完毕后,计数器的值就-1,当计数器的值为0时,表示所有线程都执行完毕,然后在闭锁上等待的线程就可以恢复工作了主要方法介绍CountDownLatch(int count)

2020-05-12 10:35:45 313

原创 原子性CAS小结

什么是CAS应用在并发场景,实现线程安全的算法,同时也是一个CPU的指令(compareAndSwap)。我认为V的值应该是A, 如果是的话我就把他改成B,如果不是A(说明被别人修改过了),那我就不修改了,避免多人同时修改导致出错CAS有三个操作数:内存值V,预期值A,要修改的值B. 当且仅当预期值A和内存V相同时,才将内存值修改为B,否则什么都不做,最后返回现在的V值java中如何利用CAS实现原则操作AtomicInteger加载Unsafe工具,用来直接操作内存数据用Unsa

2020-05-09 15:03:13 202

原创 理解 springBoot-springApplication之运行阶段

springApplication运行阶段运行阶段就是SpringApplication.run()的阶段public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new StopWatch(); stopWatch.start(); ConfigurableApplicationContext context = null; Collection<SpringBootEx

2020-05-09 01:35:09 135

原创 理解 springBoot-springApplication之准备阶段

SpringApplication 基本使用SpringApplication 运行SpringApplication.run(SpringBootApplication.class, args)自定义 SpringApplication通过 SpringApplication API 调整SpringApplication springApplication = new SpringApplication(DiveInSpringBootApplication.class);Set<S

2020-05-08 19:33:28 128

原创 从spring手动装配到spring boot自动装配

spring boot自动装配spring 的手动装配Spring 模式注解装配模式注解是一种用于声明在应用中扮演 "组件"角色的注解。模式注解举例装配方式context:component-scan 方式<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframewor...

2020-05-07 16:41:05 185

原创 Executors线程池知识点总结

线程池的自我介绍思考如果不使用线程池,我们可能需要每次任务都新开一个线程来处理。如果只有一个线程public class oneThread { public static void main(String[] args) { Thread thread = new Thread(new Task())![在这里插入图片描述](https://img-bl...

2020-05-06 22:14:00 225

原创 threadLocal使用的两大场景

threadLocal两大使用场景每次线程需要一个独享的对象实现线程安全的SimpleDateFormat######第一版(两个线程获取时间)两个线程调用SimpleDateFormat 获取日期字符串public class SimpleDateFormatThreadLocal { public static void main(String[] args...

2020-05-06 22:10:18 278

原创 Atomic原子类使用总结

原子类的概念java.util.concurrent.atomic不可分割一个操作是不可中断的,即便是多线程的情况下也可以保证原子类的作用与锁类似,是为了保证并发情况下线程安全。原子类的优势粒度更细原子变量可以把竞争范围缩小到变量级别,这是我们可以获得的最细粒度的情况,通常锁的粒度都要大于原子变量的粒度效率更高使用原子类的效率会比使用锁的效率更高...

2020-05-06 22:07:07 1015

原创 quartz

基本特性使用任务动态调度集群部署原理过滤不需要的日期重复执行为什么不生效多线程为什么会退化成单线程怎么kill掉进程里面的某一个线程任务跑完怎么给管理员发信息quartz的角色 包工头 工人 项目经理spring task 模块什么时候用任务调度还款日提醒 固定时间的跑批 大量数据的处理隔半个小时打包一次 两个数据的解欧触发的规则规则的集中配置...

2020-04-07 09:06:20 81

原创 01-工厂模式(factory)

工厂模式老衲将简单工厂模式,工厂方法模式,抽象工厂模式统一为工厂模式。因为这三种模式之间是有关联的,工厂方法模式,抽象工厂模式只是解决了简单工厂的某种缺点而已。所以大家只要了解了简单工厂模式的优点,缺点以及能够codeing出简单工厂模式,相信对于掌握后两种模式不成问题只需要关心产品创建的工厂 不需要关心细节不要让自己的大脑记忆太多东西,只记忆导火索就行。对于工厂模式来说,简单工厂...

2020-02-15 23:56:10 161

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除