![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码
文章平均质量分 67
trigger333
When you work, work. When you laugh, laugh.
展开
-
Java随机数类 Random 源码解析
由D.H.Lehmer和Donald E.Knuth在《计算机编程艺术》提出。返回 (int)(seed >>> (48 - bits)).Random(long seed)等效于。所以使用该构造器在实例化的时候。,因为没有调用系统的时间函数。原创 2022-10-17 00:06:06 · 521 阅读 · 0 评论 -
ThreadLocal 源码解析
首先通过求余得到桶的索引,再判断该索引对应的位置是否有元素,并且对应的key是不是和输入参数相等(使用== 直接判断地址值),如果是 那么返回该Entry。ThreadLocalMap是ThreadLocal的一个静态内部类,ThreadLocalMap仅用来维护线程本地变量值。在找的过程中,如果有entry不为null 但是key是null ,那么就回收对应的value。ThreadLocalMap的key 只能是 ThreadLocal的实例。Entry是ThreadLocalMap的一个静态内部类。原创 2022-10-16 22:02:26 · 410 阅读 · 0 评论 -
getTask方法: 实现救急线程存活keepAliveTime
在线程池中,也就是在源码中并不区分线程的性质,当目前的线程数量大于核心线程数,该线程从阻塞队列中拉取任务时就用poll,小于等于就用take。原创 2022-09-19 16:46:50 · 466 阅读 · 0 评论 -
线程池源码核心方法介绍
线程池源码核心方法详解 addWorker getTask原创 2022-09-19 16:53:08 · 129 阅读 · 0 评论 -
阻塞队列LinkedBlockingQueue 源码解析
BlockingQueue的实现有很多,下面主要介绍下LinkedBQ。LinkedBQ 里面有两个锁,一个是putLock,一个是takeLock,也有两个Condition,也就是在put元素的时候如果里面本身就有元素的话,是不会影响到take的,只是当链表中元素从0变为1 的时候会通知等待的take线程。同理take也不会影响到put。...原创 2022-07-26 18:16:21 · 348 阅读 · 0 评论 -
Java实现简单类的序列化(int 和 string字段的序列化)
实现 int 、String、 User 的序列化和反序列化。原创 2022-07-24 20:16:42 · 4210 阅读 · 0 评论 -
手写线程池实践 自定义BlockingQueue和拒绝策略
/*手写线程池以及拒绝策略,使用到的设计模式:享元模式(池化技术) 策略模式(拒绝策略 提高程序扩展性)线程池中 有一些线程去执行任务 worker 继承 thread实现起初没有线程 如果任务来了直接 创建线程并且执行 worker.start()任务数量大于一定的阈值后 就放入任务队列中 放入队列时采用lock线程池就像调度者 不断的检查队列中是否原创 2022-06-04 16:44:05 · 315 阅读 · 0 评论 -
阻塞队列ArrayBlockingQueue 源码解析
BlockingQueue的实现有很多,下面主要介绍下ArrayBQ原创 2022-07-21 17:01:03 · 181 阅读 · 0 评论