2021年11月3日

设计模式(1-4)-动态代理(ProxyGenerator)

摘要: 前面讲的都是一些代理类生成的一些准备工作,本节讲讲代理类如何生成出来的一个过程。 java.lang.reflect.Proxy.ProxyClassFactory#apply @Override public Class<?> apply(ClassLoader loader, Class<?>[ 阅读全文

posted @ 2021-11-03 10:06 ukyu 阅读(242) 评论(0) 推荐(0) 编辑

2021年11月2日

设计模式(1-3)-动态代理(WeakCache的运用)

摘要: 阅读本篇文章前,请事先阅读 理解Java的强引用、软引用、弱引用和虚引用。 看看什么是强引用、什么是弱引用及它们的用途,很必要!!! 上一节讲到,获取对应的代理类时,首先会从缓存中去拿,若拿不到才会去生成。实现缓存的储存,如何根据指定值拿到缓存都是由WeakCache这个类实现的。 我们先去探究一下 阅读全文

posted @ 2021-11-02 14:29 ukyu 阅读(302) 评论(0) 推荐(0) 编辑

2021年10月29日

设计模式(1-2)-动态代理(newProxyInstance)

摘要: 上节设计模式(1-1)-代理模式,讲了代理模式的静态代理与动态代理的写法。本节,会从Proxy.newProxyInstance() 这个方法开始讲,上一节文末的那个class文件怎么一步步的来的。 UpanSell proxy = (UpanSell) Proxy.newProxyInstance 阅读全文

posted @ 2021-10-29 20:29 ukyu 阅读(218) 评论(0) 推荐(0) 编辑

2021年10月28日

设计模式(1-1)-代理模式

摘要: 几个月没写博客了。前些日子换了工作,把事情调整好了,又可以继续写博客了~ 学习了下代理模式,本篇文章讲动态代理与静态代理模式怎么写,后续文章会讲动态代理(JDK动态代理)原理,讲讲怎么使用CGLIB实现没有接口的类的动态代理 一、代理在生活中的例子 代理, 代表授权方处理事务(wiki 的解释)。 阅读全文

posted @ 2021-10-28 19:45 ukyu 阅读(234) 评论(0) 推荐(0) 编辑

2021年7月12日

JAVA并发(8)-ThreadPoolExecutor的讲解

摘要: 很久前(2020-10-23),就有想法学习线程池并输出博客,但是写着写着感觉看不懂了,就不了了之了。现在重拾起,重新写一下(学习一下)。 线程池的优点也是老生常谈的东西了 减少线程创建的开销(任务数大于线程数时) 统一管理一系列的线程(资源) 在讲ThreadPoolExecutor前,我们先看看 阅读全文

posted @ 2021-07-12 11:10 ukyu 阅读(407) 评论(0) 推荐(1) 编辑

2021年6月11日

JAVA并发(7)-并发队列PriorityBlockingQueue的源码分析

摘要: 本文讲PriorityBlockingQueue(优先阻塞队列) 1. 介绍 一个无界的具有优先级的阻塞队列,使用跟PriorityQueue相同的顺序规则,默认顺序是自然顺序(从小到大)。若传入的对象,不支持比较将报错( ClassCastException)。不允许null。 底层使用的是基于数 阅读全文

posted @ 2021-06-11 00:08 ukyu 阅读(254) 评论(0) 推荐(0) 编辑

2021年6月9日

JAVA并发(6)-并发队列ArrayBlockingQueue

摘要: 本文讲ArrayBlockingQueue 1. 介绍 一个基于数组的有界阻塞队列,FIFO顺序。支持等待消费者和生产者线程的可选公平策略(默认是非公平的)。公平的话通常会降低吞吐量,但是可以减少可变性并避免之前被阻塞的线程饥饿。 1.1 类结构 ArrayBlockingQueue继承关系 Arr 阅读全文

posted @ 2021-06-09 20:34 ukyu 阅读(272) 评论(0) 推荐(0) 编辑

2021年6月8日

JAVA并发(5)-并发队列LinkedBlockingQueue的分析

摘要: 本文介绍LinkedBlockingQueue,这个队列在线程池中常用到。(请结合源码,看本文) 1. 介绍 LinkedBlockingQueue, 不支持null,基于单向链表的可选有界阻塞队列。队列的顺序是FIFO。基于链表的队列通常比基于数组的队列有更高的吞吐量, 但在大多数的并发应用中具有 阅读全文

posted @ 2021-06-08 15:21 ukyu 阅读(537) 评论(1) 推荐(0) 编辑

2021年6月6日

IDEA debug ConcurrentLinkedQueue时抽风

摘要: 1. 介绍 如标题所见,我在使用IDEA debug ConcurrentLinkedQueue的Offer方法时,发生了下面的情况。 代码如下: ConcurrentLinkedQueue<string> queue = new ConcurrentLinkedQueue<>(); queue.o 阅读全文

posted @ 2021-06-06 12:24 ukyu 阅读(225) 评论(1) 推荐(1) 编辑

2021年6月3日

JAVA并发(4)-并发队列ConcurrentLinkedQueue

摘要: 本文开始介绍并发队列,为后面介绍线程池打下基础。并发队列莫非也是出队、入队操作,还有一个比较重要的点就是如何保证其线程安全性,有些并发队列保证线程安全是通过lock,有些是通过CAS。 我们从ConcurrentLinkedQueue开始吧。 1. 介绍 ConcurrentLinkedQueue是 阅读全文

posted @ 2021-06-03 23:33 ukyu 阅读(589) 评论(0) 推荐(0) 编辑

导航