06 2020 档案

摘要:目录: 什么是DelayQueue 如何使用DelayQueue 总结 什么是DelayQueue DelayQueue是一个支持延时获取元素的无界阻塞队列,队列使用PriorityQueue来实现。 队列中的元素必须实现Delayed接口,在创建元素时可以指定多久才能从队列中获取当前元素,只有在延 阅读全文
posted @ 2020-06-29 22:23 被猪附身的人 阅读(192) 评论(0) 推荐(0)
摘要:目录: 什么是ArrayBlockingQueue 为什么要有ArrayBlockingQueue 如何使用ArrayBlockingQueue ArrayBlockingQueue源码分析 LinkedBlockingQueue源码分析 什么是ArrayBlockingQueue 首先在说明Arr 阅读全文
posted @ 2020-06-28 21:06 被猪附身的人 阅读(172) 评论(0) 推荐(0)
摘要:目录: 什么是CyclicBarrier 为什么要有CyclicBarrier 如何使用CyclicBarrier CyclicBarrier源码解析 什么是CyclicBarrier CyclicBarrier是循环栅栏,它的作用就是会让所有线程都等待完成后才会继续下一步行动。 与CountDow 阅读全文
posted @ 2020-06-28 14:53 被猪附身的人 阅读(188) 评论(0) 推荐(0)
摘要:目录: CountDownLatch是什么 为什么要有CountDownLatch CountDownLatch源码分析 CountDownLatch是什么 CountDownLatch是一种闭锁,也叫倒数计数器,它可以等待多个线程执行完毕后再执行某一件事情。 比如你app的首页要加载很多个模块,而 阅读全文
posted @ 2020-06-26 22:47 被猪附身的人 阅读(175) 评论(0) 推荐(0)
摘要:目录: Semaphore简介 内部类(Sync、NonfairSync、FairSync) 属性及构造器 其它方法 Semaphore简介 Semaphore是信号量,它是synchronized的加强版,作用是控制线程的并发数量。就这一点而言,单纯的synchronized关键字是实现不了的。 阅读全文
posted @ 2020-06-25 20:01 被猪附身的人 阅读(164) 评论(0) 推荐(0)
摘要:目录: 什么是ReentrantLock ReentrantLock源码解析 总结 什么是ReentrantLock ReentrantLock是可重入锁,指当一个线程获取某个对象时还能再次获得该对象,重入是指重入某对象的锁。 那什么时候会用到可重入锁呢? 1 public class Demo { 阅读全文
posted @ 2020-06-24 15:39 被猪附身的人 阅读(191) 评论(0) 推荐(0)
摘要:目录: await()第二部分解析 如何处理线程被唤醒到竞争到锁的这段时间发生的中断 AQS总结 await()第二部分解析 之前我们说到线程在接收到signal()的通知后会从调用await()之处执行,但这里需要注意的是我们被唤醒的时候,其实并不知道是因为什么原因被唤醒的。 有可能是其它线程调用 阅读全文
posted @ 2020-06-22 14:03 被猪附身的人 阅读(405) 评论(0) 推荐(0)
摘要:目录: 概述 同步队列、条件队列 Condition源码解析 概述 首先我们知道Condition的await()、signa()是内置锁synchronize配套的wait()及notify()的增强,可以更加细化的控制锁的唤醒条件。 那么我们这里来类比下它们之间的机制: 同步:内置锁的wait( 阅读全文
posted @ 2020-06-21 10:53 被猪附身的人 阅读(607) 评论(0) 推荐(0)
摘要:目录: Lock & Condition & AQS使用示例 Lock & Condition & AQS结构简述 Lock与Condition的API解析 Lock & Condition & AQS使用示例 在说Lock和Condition之前我们先来看一下这两个的用法,从用法到源码,一步一步来 阅读全文
posted @ 2020-06-18 22:37 被猪附身的人 阅读(257) 评论(0) 推荐(0)
摘要:目录: 共享锁和独占锁的区别 共享锁实现原理 共享锁和独占锁在源码上有何区别 共享锁和独占锁的区别 共享锁和独占锁(排它锁)最大的区别就是,在同一时刻能否有多个线程获取同步状态。 独占模式,获取资源后,只有一个线程获取同步状态并执行。 共享模式,在获取资源后,多个线程共同执行。 共享锁实现原理 1、 阅读全文
posted @ 2020-06-16 22:56 被猪附身的人 阅读(298) 评论(0) 推荐(0)
摘要:目录: 学习目的 AbstractOwnableSynchronizer源码解析 AQS为什么如此重要 重要性说明 AQS内部类Node源码解析 AQS实例属性源码解析 AQS独占锁加锁 AQS独占锁解锁 总结 知识点总结 其它收获 学习目的 上一节学习到的ThreadPoolExecutor在并发 阅读全文
posted @ 2020-06-14 18:43 被猪附身的人 阅读(278) 评论(0) 推荐(0)
摘要:目录: ThreadPoolExecutor ForkJoinPool 两者的比较 ThreadPoolExecutor 1、无返回值demo 1 public class ThreadTest { 2 3 public static void main(String[] args) { 4 // 阅读全文
posted @ 2020-06-10 22:51 被猪附身的人 阅读(265) 评论(0) 推荐(0)
摘要:1、ps -ef | grep nginx 查找nginx进程 2、kill -QUIT xxxx 杀死nginx进程 3、找到nginx安装目录下sbin,输入命令./nginx -t;若返回nginx.conf syntax is ok、nginx.conf test is successful 阅读全文
posted @ 2020-06-08 16:23 被猪附身的人 阅读(199) 评论(0) 推荐(0)
摘要:学了一段时间的Spring源码,有些感触,虽然谈不上感触颇深但也有些体会,今天我把一些个人的感触记下来(才读了冰山一角,哈哈哈哈哈哈)。 1、面向接口编程: 哎,这其实没啥好说的,这不是常态么。 但我个人认为有扩展可能的程序才需要定义接口,向那些短期内不会变化或变化维度过大,我个人认为最好不要定义接 阅读全文
posted @ 2020-06-06 12:55 被猪附身的人 阅读(189) 评论(0) 推荐(0)
摘要:目录: 事件广播源码 观察者模式 Java事件机制 Spring事件驱动机制 容器生命周期 事件广播源码 Spring初始化事件广播的源码很简单,和上一节初始化消息源的逻辑非常相似,我把代码贴在这。 1 protected void initApplicationEventMulticaster() 阅读全文
posted @ 2020-06-04 11:07 被猪附身的人 阅读(408) 评论(0) 推荐(0)
摘要:目录: 什么是消息源 如何使用消息源 Spring是如何实现消息源的 什么是消息源 Spring中定义一个MessageSource接口,以用于支持信息的国际化和包含参数的信息替换。 ApplicationContext接口扩展了MessageSource接口,因而提供了消息处理的功能(i18n或者 阅读全文
posted @ 2020-06-02 22:38 被猪附身的人 阅读(482) 评论(0) 推荐(0)
摘要:目录: 注册后处理器源码:registerBeanPostProcessors BeanPostProcessor与InstantiationAwareBeanPostProcessor bean的类型 bean的生命周期 spring如何解决循环依赖 注册后处理器源码:registerBeanPo 阅读全文
posted @ 2020-06-01 16:29 被猪附身的人 阅读(240) 评论(0) 推荐(0)