09 2021 档案

摘要:线程工厂ThreadFactory 我们在项目开发额过程中,如果有很多地方使用多线程,那么给线程命名是十分有必要的,这样当出现问题的时候就比较容易排查 创建线程池,使用默认的线程工厂 /** * 创建线程池 */ public static final ThreadPoolExecutor pool 阅读全文
posted @ 2021-09-09 13:39 苏格拉的底牌 阅读(5970) 评论(0) 推荐(0) 编辑
摘要:线程池之拒绝策略 当线程池中任务队列已满且最大线程数maximumPoolSize达到最大,此时如果还有任务过来,那么将会触发拒绝策略 线程池一共内置了四种拒绝策略,线程池默认使用AbortPolicy private static final RejectedExecutionHandler de 阅读全文
posted @ 2021-09-09 10:16 苏格拉的底牌 阅读(522) 评论(0) 推荐(0) 编辑
摘要:线程池之工作队列 ArrayBlockingQueue 采用数组来实现,并采用可重入锁ReentrantLock来做并发控制,无论是添加还是读取,都先要获得锁才能进行操作 可看出进行读写操作都使用了ReentrantLock,ArrayBlockingQueue需要为其指定容量 public boo 阅读全文
posted @ 2021-09-09 10:10 苏格拉的底牌 阅读(2008) 评论(1) 推荐(0) 编辑
摘要:Base64编码 字符对应表 上表就是用来表示Base64,一共64个字符,A-Z,a-z,0-9,+,/(上表打错了),还有=(作为补位) 无论将文件,字符串,还是什么转为Base64,一定是用上表的字符表示。 转换方式是将三个字节分为一个单元,因为一个字节占8位,所以一个单元就是24位,然后将一 阅读全文
posted @ 2021-09-07 23:58 苏格拉的底牌 阅读(2118) 评论(0) 推荐(2) 编辑
摘要:ThreadLocal字面意思本地线程,ThreadLocal使每个线程之间是隔离的,数据是独立的,我们使用过session都知道 session是一个会话,我们可以用它来存储一些用户的基本信息,这样每个用户在服务端都能取到,ThreadLocal也可以做到, ThreadLocal将相应的信息存储 阅读全文
posted @ 2021-09-05 14:03 苏格拉的底牌 阅读(73) 评论(0) 推荐(0) 编辑
摘要:Future代表异步执行的结果,也就是说异步执行完毕后,结果保存在Future里, 我们在使用线程池submit()时需要传入Callable接口,线程池的返回值为一个Future,而Future则保存了执行的结果 ,可通过Future的get()方法取出结果,如果线程池使用的是execute(), 阅读全文
posted @ 2021-09-05 00:47 苏格拉的底牌 阅读(133) 评论(0) 推荐(0) 编辑
摘要:CountDownLatch 在开发过程中我们常常遇到需要对多个任务进行汇总,比如报表,或者大屏显示,需要将所有接口的数据都 获取到后再进行汇总,如果使用同步的方式,那么会比较耗时,体验不好,所以我们使用多线程,但是使用多线程 只能异步的执行,有些接口响应比较快,有些比较慢,而返回结果之间又有依赖, 阅读全文
posted @ 2021-09-05 00:33 苏格拉的底牌 阅读(55) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示