JAVA基础
文章平均质量分 92
Maru灬
这个作者很懒,什么都没留下…
展开
-
ThreadLocal原理
JAVA基础:ThreadLocal原理解析ThreadLocal用途ThreadLocal原理看似一个容器实际的容器ThreadLocalMap弱引用引用关系图 ThreadLocal用途 当需要声明一个Singleton的对象,想在多个线程中使用这个声明,每个线程使用自己独立的对象时。或者需要在线程内存储一个全局变量,仅当前线程可以访问。 ThreadLocal原理 看似一个容器 最早看到Th...原创 2019-01-02 20:16:29 · 343 阅读 · 0 评论 -
JAVA基础:Condition原理解析
JAVA基础:Condition原理解析Condition用途Condition原理介绍await()阻塞线程signal()唤醒线程Condition源码分析await()释放锁阻塞线程signal()通知await()线程继续运行 Condition用途 我们知道当多个线程需要访问一个共享资源时,需要第共享资源加锁。 当一个线程释放锁时,所有等待锁的线程都会尝试去获取锁。 但是如果我们想只让部...原创 2019-01-18 15:07:42 · 1795 阅读 · 1 评论 -
AQS学习
AQS学习: 初识AQS public final void acquire(int arg) { // 由子类重写的方法先取尝试一下能不能获取到锁 if (!tryAcquire(arg) && // 如果没有获取到锁则addWaiter再acquireQueued acquireQueued(addWaiter(Node.EXCLUSI...原创 2019-01-08 17:56:21 · 367 阅读 · 0 评论 -
JAVA基础:线程池ThreadPoolExecutor及Future原理解析
JAVA基础:线程池ThreadPoolExecutor及Future原理解析线程池的作用ThreadPoolExecutor实现原理 线程池的作用 为了降低在处理短时间任务创建与销毁线程的代价。 控制线程的数量,过多的线程会带来调度的开销以及资源的占用。 一定程度上提高程序的稳定性和可维护性,防止出现意外创建过多线程的情况导致资源占用满了出现GC问题甚至导致程序崩溃。 ThreadPoolE...原创 2019-02-14 19:38:52 · 2633 阅读 · 0 评论 -
JAVA queue
Queue基本功能 FIFO add对应remove,element, 在队列尾部新增元素,队列头部取出、查看元素,失败时抛出异常 offer对应poll,peek 失败时返回null, ArrayQueue 非线程安全 有容量大小,基于数组.数组长度为容量+1,tail指针的位置不存储元素。 不会扩容 原理:通过向右移动head和tail索引来新增删除数据。初始化都为0。 无论移动head还是t...原创 2019-05-23 19:30:18 · 249 阅读 · 0 评论 -
各种源码中的责任链模式浅析
文章目录一、 AOP中的责任链二、Spring MVC中拦截器链三、 Servlet中的Filter四、Mybatis插件中的拦截器链五、 Netty中的ChannelPipeline 一、 AOP中的责任链 AOP中的责任链是将所有元素封装到一个链条对象中记录,然后调用该链条对象的invoke方法,同时将链条传给链条节点,这样链条节点就可以控制链条是否继续往下走了。 首先看JdkDynamic...原创 2019-08-05 20:24:04 · 341 阅读 · 1 评论