随笔分类 -  Java基础

摘要:AQS 0 锁的基本原理 首先,需要考虑锁的基本组成元素。 当前锁的状态,是被持有还是未持有状态 如果锁是被持有状态,那么到底是哪个线程持有了当前这把锁 锁必须有一个队列去存储阻塞在该锁或者说在等待持有锁的线程 锁的实现一定需要考虑怎样阻塞线程,将线程放入到等待队列,以及如何在队列中唤醒等待的线程, 阅读全文
posted @ 2020-06-14 01:10 zerodseu 阅读(126) 评论(0) 推荐(0)
摘要:/* * 当一个任务通过execute(Runnable)提交后,假设当前运行的线程数目 = running_thread_num * * 增加工作线程以及放入队列的策略 * ① if running_thread_num < corePoolSize * 即使其他线程都是idle的,也会创建一个新 阅读全文
posted @ 2020-05-29 22:18 zerodseu 阅读(120) 评论(0) 推荐(0)
摘要:最近看了下Java线程池的源码,ExecutorService里面关于shutdown和shutdownNow的注释不太能理解啥意思。 直接翻译字面意思是,开启一个有序的关闭,先前提交的任务会被执行,但不接受新任务。如果已关闭,则调用不会产生任何其他影响。但是这个方法不会等待已提交任务完成执行。 这 阅读全文
posted @ 2020-05-23 18:38 zerodseu 阅读(2409) 评论(0) 推荐(0)
摘要:1 使用包名,则Alias默认为对象简单类名,其中第一个字母替换为小写 注释:这里的TDemoDO别名默认为tDemoDO 2 使用全限定类名,xml中配置Alias 3 使用全限定类名 + @Alias 4 使用package + @Alias 总结 : 个人觉得使用package + Alias 阅读全文
posted @ 2020-05-22 19:05 zerodseu 阅读(1384) 评论(0) 推荐(0)
摘要:```javaimport java.util.concurrent.atomic.AtomicInteger;/** * @author zerodsLyn * created on 2020/5/10 */public class MultiThreadSerialPrint { private final Thread[] threads; /** * 打印线程数目 ... 阅读全文
posted @ 2020-05-10 18:33 zerodseu 阅读(240) 评论(0) 推荐(0)
摘要:Java的Object.wait(long)在等待时间过去后会继续往后执行吗 Object.wait(long)方法相比于wait,多了个等待时长,那么当等待时长过去后,线程会继续往下执行吗? 1. 单个线程执行 2. 多个线程并发执行 第一种情况下,运行结果 t1: I am in t1: I a 阅读全文
posted @ 2020-05-08 20:34 zerodseu 阅读(1019) 评论(0) 推荐(0)
摘要:LinkedList 1 类图 2 字段和内部类 3 构造器 4.2 addLast 4.3 add(int index, E element) 5 删 6 改 7 查 8 遍历和迭代器 避免每次调用get(i),这样的性能开销较高 阅读全文
posted @ 2020-05-04 13:40 zerodseu 阅读(104) 评论(0) 推荐(0)
摘要:AbstractList 1 类图 2 字段 3 构造器 4 增 1. 先内部确认容量 2. 数组buffer末尾添加元素 3. 返回true 5 删除 7 更新 8 查询 阅读全文
posted @ 2020-05-04 13:26 zerodseu 阅读(93) 评论(0) 推荐(0)
摘要:```java public class CountDownLatch { /** * Synchronization control For CountDownLatch. * Uses AQS state to represent count. */ private static final class Sync extends AbstractQueuedSynchronizer { Syn 阅读全文
posted @ 2020-05-04 12:51 zerodseu 阅读(150) 评论(0) 推荐(0)
摘要:ReentrantLock 1 数据结构 从上图可以看出,ReentrantLock的功能都是通过sync这个对象提供的。 2 获取锁是否要走公平非公平逻辑 区分公平非公平锁,公平锁老实排队 lock lockInterruptibly tryLock(long timeout, TimeUnit 阅读全文
posted @ 2020-04-21 14:25 zerodseu 阅读(125) 评论(0) 推荐(0)

点击右上角即可分享
微信分享提示