摘要: 1、「继承Thread类」,重写run()方法 public class Demo extends Thread{ //重写父类Thread的run() public void run() { } public static void main(String[] args) { Demo d1 =  阅读全文
posted @ 2023-03-30 23:57 CodeWhisperer001 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 判断线程池中的线程数「是否大于设置的核心线程数」 如果「没有满」,则「放入队列」,等待线程空闲时执行任务 如果队列已经「满了」,则判断「是否达到了线程池设置的最大线程数」 如果「没有达到」,就「创建新线程」来执行任务 如果已经「达到了」最大线程数,则「执行指定的拒绝策略」 如果「小于」,就「创建」一 阅读全文
posted @ 2023-03-30 23:54 CodeWhisperer001 阅读(13) 评论(0) 推荐(0) 编辑
摘要: ​ 「强引用 StrongReference」 Object obj = new Object(); //只要obj还指向Object对象,Object对象就不会被回收 垃圾回收器不会回收被引用的对象,哪怕内存不足时,JVM 也会直接抛出 OutOfMemoryError,除非赋值为 null。 「 阅读全文
posted @ 2023-03-30 23:52 CodeWhisperer001 阅读(37) 评论(0) 推荐(0) 编辑
摘要: ThreadLocal其实就是「线程本地变量」,他会在每个线程都创建一个副本,那么在线程之间访问内部副本变量就行了,做到了线程之间互相隔离。 ThreadLocal 有一个「静态内部类 ThreadLocalMap」,ThreadLocalMap 又包含了一个 Entry 数组,「Entry 本身是 阅读全文
posted @ 2023-03-30 23:50 CodeWhisperer001 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 「1.对象头」: 对象头又分为 「MarkWord」 和 「Class Pointer」 两部分。 「MarkWord」:包含一系列的标记位,比如轻量级锁的标记位,偏向锁标记位,gc记录信息等等。 「ClassPointer」:用来指向对象对应的 Class 对象(其对应的元数据对象)的内存地址。在 阅读全文
posted @ 2023-03-30 23:47 CodeWhisperer001 阅读(13) 评论(0) 推荐(0) 编辑