- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 Spring框架中bean的生命周期
Spring框架中bean的生命周期BeanNameAware、ApplicationContextAware、BeanFactoryAwareBeanPostProcessor、InitializingBean、DisposableBeanbean的生命周期BeanNameAware、ApplicationContextAware、BeanFactoryAwareBeanNameAware 接口只有一个方法 setBeanName()。实现BeanNameAware 接口的 bean,在 bean加
2021-12-14 14:32:45
353
原创 线程池(三)--ScheduledThreadPoolExecutor
线程池(三)--ScheduledThreadPoolExecutor什么是ScheduledThreadPoolExecutor构造方法提交任务APIScheduledThreadPoolExecutor使用什么是ScheduledThreadPoolExecutorScheduledThreadPoolExecutor是一个定时线程池,他是继承ThreadPoolExecutor类,所不同的是它具有定时执行,以周期或间隔循环执行任务等功能。构造方法 public ScheduledThr
2021-11-16 15:22:29
330
原创 线程池(二)--ThreadPoolExecutor
线程池(二)--ThreadPoolExecutor构造方法参数解释API线程池原理图ThreadPoolExecutor提交线程例子构造方法public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit
2021-11-16 10:51:44
289
原创 线程池(一)--ExecutorService
线程池(一)--线程池基本方法和属性线程池什么时候使用线程池线程池的优势线程的实现方法Executor框架线程池重点属性ctl相关方法线程池5种状态线程池的具体实现线程池线程池是一个线程缓存,线程是稀缺资源,如果被无限制的创建,不仅仅会消耗系统资源,还会降低系统的稳定性。什么时候使用线程池单个任务处理时间比较短需要处理的任务数量很大线程池的优势重用存在的线程,减少线程创建、消亡的开销,提高性能提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。提高线程的可管理性。线
2021-11-15 14:54:01
813
原创 并发编程(八)--CyclicBarrier
并发编程(八)--CyclicBarrierCyclicBarrier是什么CyclicBarrier构造器CyclicBarrier的API应用场景示例代码CyclicBarrier是什么栅栏屏障,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,知道最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续执行。CyclicBarrier构造器 CyclicBarrier(int parties, Runnable barrierAction) CyclicBarrier(int pa
2021-11-12 18:01:43
70
原创 并发编程(七)--CountDownLatch
并发编程(七)--CountDownLatchCountDownLatch是什么CountDownLatch如何工作APICountDownLatch是什么CounDownLatch这个类能够使一个线程等待其它线程完成各自的工作后再执行,例如,应用程序的主线程希望在负责启动框架服务的线程已经启动所有的框架服务之后再执行。使用场景:Zookeeper分布式锁,jmeter模拟高并发等。CountDownLatch如何工作CountDownLatch是通过一个计数器来实现的,计数器初始值为线程的数量。
2021-11-12 16:05:35
1059
原创 并发编程(六)---Semaphore
并发编程(六)--SemaphoreSemaphore是什么怎么使用Semaphore构造方法重要方法基本使用Semaphore是什么Semaphore字面意思就是信号量的意思,他的作用就是控制访问特定资源的线程数目,底层依赖AQS的状态State,是生产当中比较常用的一个工具类。怎么使用Semaphore构造方法public Semaphore(int permits) public Semaphore(int permits, boolean fair) permits表示许可线程的数量
2021-11-10 18:46:42
395
原创 并发编程(五)--AQS原理浅析
并发编程(五)--AQS原理AQS三大核心原理AQS具备特性AQS中的StateAQS中的两种资源共享方式AQS定义两种队列同步等待队列条件等待队列AQS三大核心原理自旋:当多个线程同时竞争锁时会先进行自旋操作,未抢到锁的线程进入CLH同步队列时也会先进行自旋。CAS:抢锁原理是用CAS算法,主要核心思想是比较与交换。队列:用来承载未竞争到锁的线程的容器,是一个FIFQ的同步队列ReentrantLock lock = new ReentrantLock(false);//false为非公平锁
2021-11-10 15:12:24
391
原创 并发编程(四)--ReentrantLock
并发编程(四)--ReentrantLockReetrantLockReetrantLock工作原理ReetrantLock实现重进入ReetrantLockReentrantLock是一种基于AQS框架的应用实现,是JDK中的一种线程并发访问的同步手段,他的功能类似与synchronizd是一种互斥锁,可以保证线程安全,而且他具有比synchronized更多的特性,比如他支持手动加锁与解锁,支持加锁的公平性。public class Testcase { ReentrantLock lock
2021-11-09 11:23:56
324
原创 并发编程(三)--synchronized
并发编程(三)--synchronizedsynchronized原理详解synchronized底层原理锁的膨胀升级过程synchronized原理详解synchronized 内置锁是对象锁(锁的是对象而非引用),作用粒度是对象,可以用来实现对临界的同步互斥访问,是可重入的。加锁方式:1.同步实例方法,锁是当前实例对象public class Testcase { public synchronized void test(){};}2.同步类方法,锁是当前类对象public
2021-11-08 14:18:03
76
原创 并发编程(二)---关键字volatile
volatile内存语义volatile的可见性volatile无法保证其原子性volatile禁止重排优化
2021-11-05 16:29:05
137
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人