![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
#java基础
老衲の少女心
可以写不出一行高深的代码,但是写出来的每一行的代码都必须是规范的代码
展开
-
【多线程】线程池拒绝策略详解与自定义拒绝策略
线程池的拒绝策略ThreadPoolExecutor内部有实现4个拒绝策略,默认为AbortPolicy策略CallerRunsPolicy:由调用execute方法提交任务的线程来执行这个任务AbortPolicy:抛出异常RejectedExecutionException拒绝提交任务DiscardPolicy:直接抛弃任务,不做任何处理DiscardOldestPolicy:去除任务队列中的第一个任务,重新提交线程池中,有三个重要的参数,决定影响了拒绝策略:corePoolSize -原创 2020-11-09 16:45:37 · 4408 阅读 · 1 评论 -
【多线程】ThreadPoolExecutor类源码解析----续(二进制相关运算)
前言在之前阅读 ThreadPoolExecutor 源码的时候,发现代码里用到了一些二进制相关的位运算之类的代码,看起来有些费劲了,所以现在大概总结了一些笔记,二进制这东西吧,不难,就跟数学一样,知道规律,计算公式,就贼简单,就是二进制转十进制这种自己算起来比较费劲但现在又不是考试,所以我选择计算器!!!!二进制计算机采用二进制原因:首先,二进位计数制仅用两个数码。0和1,所以,任何具有二个不同稳定状态的元件都可用来表示数的某一位。而在实际上具有两种明显稳定状态的元件很多。例如,氖灯的亮和熄;原创 2020-11-05 14:40:52 · 222 阅读 · 0 评论 -
【多线程】ThreadPoolExecutor类万字源码解析(注解超级详细)
线程池线程池初始化时是没有创建线程的,线程池里的线程的初始化与其他线程一样,但是在完成任务以后,该线程不会自行销毁,而是以挂起的状态返回到线程池。直到应用程序再次向线程池发出请求时,线程池里挂起的线程就会再度激活执行任务。这样既节省了建立线程所造成的性能损耗,也可以让多个任务反复重用同一线程,从而在应用程序生存期内节约大量开销public ThreadPoolExecutor( // 线程池核心线程数 int corePoolSize, // 线程池最大数 int ma原创 2020-11-04 16:29:09 · 291 阅读 · 0 评论 -
【多线程】ThreadPoolExecutor 类的使用详解
ThreadPoolExecutor 构造方法ThreadPoolExecutor共4个构造方法:咱们直接看参数最多的7个参数分别代表:public ThreadPoolExecutor( // 线程池核心线程数 int corePoolSize, // 线程池最大数 int maximumPoolSize, // 空闲线程存活时间 long keepAliveTime, // 时间单位 TimeUnit unit, /原创 2020-11-03 18:56:38 · 9238 阅读 · 0 评论 -
【多线程】Synchronized及实现原理
Synchronized的基本使用Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作用主要有三个:确保线程互斥的访问同步代码保证共享变量的修改能够及时可见有效解决重排序问题。从语法上讲,Synchronized总共有三种用法:修饰普通方法修饰静态方法修饰代码块接下来我就通过几个例子程序来说明一下这三种使用方式(为了便于比较,三段代码除了Synchronized的使用方式不同以外,其他基本保持一致)。没有同步的情原创 2020-11-03 15:21:56 · 171 阅读 · 0 评论 -
【java基础】map的基本使用与字符串中每个字符出现的次数统计
Map集合概述和特点Map集合概述interface Map<K,V> K:键的类型;V:值的类型Map集合的特点键值对映射关系一个键对应一个值键不能重复,值可以重复元素存取无序Map集合的基本使用 public class MapDemo01 { public static void main(String[] args) { ...原创 2020-04-25 16:24:58 · 544 阅读 · 0 评论