摘要:
ThreadPoolExecutor添加worker源码解析——addWorker 该方法的主要目的就是为了向线程池中创建线程(worker),并执行线程。 private boolean addWorker(Runnable firstTask, boolean core) { retry: fo 阅读全文
摘要:
FutureTask(未来任务) 一、前情回顾(重要) 首先我们先回顾一下多线程创建的方式 直接继承Thread方式 实现Runnable 方式 实现Callable方式 线程池方式 这四种方式主要分为两类:没返回值的(1,2) 有返回值的(3,4) 没返回值的相信已经烂熟于心了。这次我们讲讲有返回 阅读全文
摘要:
ConcurrentHashMap(jdk1.8) 底层操作 //数组对象 = 头对象(8bytes) + 指针对象(4bytes) + 数组长度(4bytes) + 数据(xxxbytes) Class<?> ak = Node[].class; //Node[]Class 对象ak ABASE 阅读全文
摘要:
HashMap(JDK8) 大总结 数据结构 Node数组 + 链表 + 红黑树 构成 成员变量及内部类 //默认数组的初始化长度 AKA 16 1<<4 10000 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 //数组 阅读全文
摘要:
JUC基础 多线程编程基础 多线程编程步骤(上) 第一步 创建资源类,在资源类创建属性和操作方法 第二步 创建多个线程,调用资源类的操作方法 多线成编程步骤(中) //线程间通信 第一步 创建资源类,在资源类创建属性和操作方法 第二步 操作方法中分为 判断 干活 通知 第三步 创建多个线程,调用资源 阅读全文
摘要:
二、Bean生命周期中AOP的流程 @EnableAspectJAutoProxy注解 源码分析: 下面是@EnableAspectJAutoProxy 的源码: @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Docum 阅读全文
摘要:
Spring 注解驱动开发-IOC 组件注册 包扫描+组件标注注解(@ComponetScan/ @Controller/@Service/@Repository/@Component) @Bean[导入的第三方包里面的组件] @Import[快速给容器中导入一个组件] @Import(要导入到容器 阅读全文