2022年5月16日

摘要: 一。aqs AQS全称是AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架。 特点: 用 state 属性来表示资源的状态(分独占模式和共享模式),子类需要定义如何维护这个状态,控制如何获取 锁和释放锁 getState - 获取 state 状态 setSta 阅读全文
posted @ 2022-05-16 19:14 一只萌萌哒的提莫 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 一。创建异步对象 CompletableFuture 提供了四个静态方法来创建一个异步操作。 runXxxx 都是没有返回结果的,supplyXxx 都是可以获取返回结果的。 可以传入自定义的线程池,否则就用默认的线程池。 二。计算完成时回调方法 whenComplete 可以处理正常和异常的计算结 阅读全文
posted @ 2022-05-16 00:14 一只萌萌哒的提莫 阅读(153) 评论(0) 推荐(0) 编辑

2022年5月15日

摘要: 一。线程池的构造方法 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, Thre 阅读全文
posted @ 2022-05-15 23:42 一只萌萌哒的提莫 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 一。可见性 内存分为主内存和线程内存,当线程开始时会把主内存需要的数据放到线程内存里,但线程内存的数据不会直接返回给主内存,这导致了多线程的情况下,对一个 数据不能做到即使反馈。 二。volatile 它可以用来修饰成员变量和静态成员变量,他可以避免线程从自己的工作缓存中查找变量的值,必须到主存中获 阅读全文
posted @ 2022-05-15 15:54 一只萌萌哒的提莫 阅读(75) 评论(0) 推荐(0) 编辑

2022年5月14日

摘要: 一。java对象头的组成 1.普通对象: 2.数组对象 3.markword(32位)结构 4.markword(64位)结构 二。monitor概念 每个 Java 对象都可以关联一个 Monitor 对象,如果使用 synchronized 给对象上锁(重量级)之后,该对象头的 Mark Wor 阅读全文
posted @ 2022-05-14 16:57 一只萌萌哒的提莫 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 一。创建线程的方式 1.继承Thread,直接运行 // 构造方法的参数是给线程指定名字,推荐 Thread t1 = new Thread("t1") { @Override // run 方法内实现了要执行的任务 public void run() { log.debug("hello"); } 阅读全文
posted @ 2022-05-14 12:47 一只萌萌哒的提莫 阅读(8) 评论(0) 推荐(0) 编辑

2022年5月13日

摘要: 一。类文件结构 类在运行之前会进行编译,变成以class结尾的文件,这类文件在被加载的时候会根据一定的约定变成一个字节码文件,其中对应的字节码和类型是: ClassFile { u4 magic; u2 minor_version; u2 major_version; u2 constant_poo 阅读全文
posted @ 2022-05-13 14:30 一只萌萌哒的提莫 阅读(70) 评论(0) 推荐(0) 编辑

2022年5月10日

摘要: 一。如何判断垃圾可回收 1.引用计数法 引用计数法就是当一个对象被引用时,就对它添加一个引用标记,当一个对象不被引用时就减少一个引用标记,每当需要垃圾回收时,就对引用为0的对象进行回收。 这种方法会产生很多永远不会被回收的垃圾,诸如一个列表中引用了另一个列表,而另一个列表中也引用了它,则会构成循环引 阅读全文
posted @ 2022-05-10 17:35 一只萌萌哒的提莫 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 一。程序计数器 程序计数器是线程私有的。 每个线程都拥有一个程序计数器,用来记住吓一条指令的执行地址。 程序计数器不会发生内存溢出,也就是oom。 二。虚拟机栈 虚拟机栈是线程私有的。 虚拟机栈是用来存放栈帧的地方。 栈帧是每一次调用方法时所占用的内存。 栈帧中的结构有: 局部变量表: 用来存储方法 阅读全文
posted @ 2022-05-10 00:15 一只萌萌哒的提莫 阅读(47) 评论(0) 推荐(0) 编辑

2022年4月25日

摘要: 使用多线程交替打印t1t2: package com.lizhenxin.java0422.b3; import lombok.extern.java.Log; import lombok.extern.slf4j.Slf4j; /** * @author lizhenxin * @create 2 阅读全文
posted @ 2022-04-25 23:51 一只萌萌哒的提莫 阅读(43) 评论(0) 推荐(0) 编辑