摘要:
码农在囧途 随着时间的推移,曾经我们觉得重要的东西,可能在今天看来是如此的浅薄和无知,同理,今天我们放不下,想不开,觉得重要的东西,多年后我们可能也会觉得也就那样,所以,今天的的所有烦恼,忧愁,想不开,其实我们都没必要过于在意,因为有些东西随着时间的冲刷,也就那样了。 前言 Java8提供了Opti 阅读全文
摘要:
码农在囧途 生活是一个洗礼自己的过程,这个洗礼并不是传统意义上的洗礼,传统意义上的洗礼通常认为这个人的思想得到洗礼,灵魂得到洗礼,十分的清新脱俗,不世故,不圆滑,而现实的洗礼实则是让一个人褪去幼稚,褪去无知,让你变得点头哈腰,圆滑世故,我们都是动物,需要物质满足,更需要欲望填补,所以,变成自己小时候 阅读全文
摘要:
线程工厂ThreadFactory 我们在项目开发额过程中,如果有很多地方使用多线程,那么给线程命名是十分有必要的,这样当出现问题的时候就比较容易排查 创建线程池,使用默认的线程工厂 /** * 创建线程池 */ public static final ThreadPoolExecutor pool 阅读全文
摘要:
线程池之拒绝策略 当线程池中任务队列已满且最大线程数maximumPoolSize达到最大,此时如果还有任务过来,那么将会触发拒绝策略 线程池一共内置了四种拒绝策略,线程池默认使用AbortPolicy private static final RejectedExecutionHandler de 阅读全文
摘要:
线程池之工作队列 ArrayBlockingQueue 采用数组来实现,并采用可重入锁ReentrantLock来做并发控制,无论是添加还是读取,都先要获得锁才能进行操作 可看出进行读写操作都使用了ReentrantLock,ArrayBlockingQueue需要为其指定容量 public boo 阅读全文
摘要:
Base64编码 字符对应表 上表就是用来表示Base64,一共64个字符,A-Z,a-z,0-9,+,/(上表打错了),还有=(作为补位) 无论将文件,字符串,还是什么转为Base64,一定是用上表的字符表示。 转换方式是将三个字节分为一个单元,因为一个字节占8位,所以一个单元就是24位,然后将一 阅读全文
摘要:
ThreadLocal字面意思本地线程,ThreadLocal使每个线程之间是隔离的,数据是独立的,我们使用过session都知道 session是一个会话,我们可以用它来存储一些用户的基本信息,这样每个用户在服务端都能取到,ThreadLocal也可以做到, ThreadLocal将相应的信息存储 阅读全文
摘要:
Future代表异步执行的结果,也就是说异步执行完毕后,结果保存在Future里, 我们在使用线程池submit()时需要传入Callable接口,线程池的返回值为一个Future,而Future则保存了执行的结果 ,可通过Future的get()方法取出结果,如果线程池使用的是execute(), 阅读全文
摘要:
CountDownLatch 在开发过程中我们常常遇到需要对多个任务进行汇总,比如报表,或者大屏显示,需要将所有接口的数据都 获取到后再进行汇总,如果使用同步的方式,那么会比较耗时,体验不好,所以我们使用多线程,但是使用多线程 只能异步的执行,有些接口响应比较快,有些比较慢,而返回结果之间又有依赖, 阅读全文
摘要:
愿你生命中有够多的云翳,造就一个美好的黄昏 介绍 原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能,这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。我们在程序设计的时候通常会创建很多对象,并且随着不断地开发,会发现在使用过程很多对象是相似甚至是相 阅读全文