未命名
发表于
手写 ArrayList 和 LinkedList - 深入理解 Java 集合框架
发表于
分类于
手写笔记
手写动态代理 - 深入理解 JDK 动态代理原理
发表于
分类于
手写笔记
八股-ThreadLocal
发表于
分类于
八股, JUC
栈队列的实现为什么要用 ArrayDeque 而不是 LinkedList?
栈队列的实现为什么要用 ArrayDeque 而不是 LinkedList?
最近看到了这篇讨论 java - 为什么 ArrayDeque 比 LinkedList 更好 - Stack Overflow
想来解释一下为什么?
八股-线程安全
八股-线程池
线程池
使用线程池的好处
- 资源管理:控制并发线程数量,防止资源耗尽
- 线程复用:避免频繁创建/销毁线程的开销,提高响应速度
ThreadPoolExecutor 七大参数
1 | public ThreadPoolExecutor( |
| 参数 | 说明 | 注意事项 |
|---|---|---|
| corePoolSize | 常驻核心线程数,即使空闲也保留 | 设置过小会导致任务堆积,过大浪费资源 |
| maximumPoolSize | 线程池最大容量,包含临时线程 | 必须 ≥ corePoolSize |
| keepAliveTime | 非核心线程空闲后的存活时间 | 设置合理避免频繁创建销毁 |
| workQueue | 存放待执行任务的队列 | 常用 LinkedBlockingQueue、ArrayBlockingQueue、SynchronousQueue |
| threadFactory | 创建线程的工厂 | 建议自定义命名,方便排查问题 |
| handler | 拒绝策略 | 默认 AbortPolicy,生产环境建议自定义 |