摘要: 1. 线程池 每次为新来的任务创建线程是非常低效的,应该通过线程池的方式提供线程执行任务,做到线程的共用。 大概的模式是这样的,线程池是消费者,每次从任务队列去拿任务执行,生产者是主线程,每次产生新的任务放在任务队列中,当线程池中线程数量不能再新增,且任务队列满的时候,这时候main不能再往bloc 阅读全文
posted @ 2026-04-08 16:20 不会coding的喵酱 阅读(12) 评论(0) 推荐(0)
摘要: 1. CAS CAS(Compare and Swap) 是一种无锁操作,包括以下三个操作数 内存地址/变量地址:要修改的变量地址 期望的原值 期望的新值 CAS的逻辑是通过将要赋值时候,比较要修改的变量值是否还等于原值,等于才把原值改为新值,否则则不进行任何操作,它的底层是依赖CPU的硬件指令(如 阅读全文
posted @ 2026-04-08 16:07 不会coding的喵酱 阅读(10) 评论(0) 推荐(0)
摘要: 1. JMM介绍 JMM是Java内存模型,定义了主存(线程共享的内存),工作内存(线程私有的变量)抽象概念,底层对应着CPU寄存器,缓存,硬件内存,CPU指令优化等。 JMM体现在以下几方面: 原子性:保证指令不会受到线程上下文切换影响 可见性:保证指令不会受cpu缓存的影响 有序性:保证指令不会 阅读全文
posted @ 2026-04-08 15:50 不会coding的喵酱 阅读(7) 评论(0) 推荐(0)
摘要: 1. 共享线程问题 对于多线程操作共享变量的读写场景,发生的指令交错,就会出现共享问题。 如果一段代码中存在多线程对共享变量的读写操作,这段代码就叫临界区 通过避免临界区的安全问题,有两种解决办法 阻塞式解决方案,synchronized,Lock 非阻塞式:原子变量(底层采用CAS) 2. 线程安 阅读全文
posted @ 2026-04-08 15:14 不会coding的喵酱 阅读(6) 评论(0) 推荐(0)
摘要: 1. 线程创建 & callable 线程创建的方法: 直接通过Thread类创建线程。 通过实例Thread类(匿名内部类),重写thread的run方法(因为本身的run方法是没有功能上的实现的,相当于是构造了匿名内部类),创建线程。再通过start方法启动线程。 通过runnable接口创建线 阅读全文
posted @ 2026-04-08 14:51 不会coding的喵酱 阅读(7) 评论(0) 推荐(0)
摘要: 1. 线程相关概念 1.1 进程与线程 线程是一个指令流,将一条条指令按一定顺序交给cpu执行,线程是进程的子集,线程是最小的调度单位(和cpu) 进程是程序的一个实例,一个进程含有多个线程,进程有共享资源,提供给内部线程贡献使用。进程通信要比线程通信复杂的多,要通过网络协议实现。 1.2 并行和并 阅读全文
posted @ 2026-04-08 14:09 不会coding的喵酱 阅读(5) 评论(0) 推荐(0)
摘要: 1. 概述 物理机的执行引擎是直接建立在操作系统,处理器,缓存,指令集上。而虚拟机的执行引擎是软件实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系 在不同虚拟机中,执行引擎在执行字节码的时候,通常有解释执行(通过解释器执行)和编译执行(即通过编译器产生本地代码执行),也可能两者兼备。 阅读全文
posted @ 2026-04-07 17:55 不会coding的喵酱 阅读(13) 评论(0) 推荐(0)
摘要: 类加载器最重要的功能就是加载的过程,也就是通过完全限定名去获得一个class对象的二进制流。 1. 类与类加载器 在jvm中,是通过类本身和加载类的类加载器来确认一个类的唯一性。每一个类加载器,都有它的类名称空间。 2. 双亲委派模型 类加载器(没有模块化之前): 启动类加载器(Bootstrap 阅读全文
posted @ 2026-04-07 17:42 不会coding的喵酱 阅读(7) 评论(0) 推荐(0)
摘要: 1. 概述 java虚拟机的类加载过程指的是将二进制的class文件加载,校验,转换解析,初始化的过程。 在java语言中,加载,连接,初始化,这些过程都是在实际运行期完成的。也就会产生格外的内存开销,但是由于动态连接和动态加载的行为也为java提供了很高的动态拓展。 2. 类加载的时机 类型的生命 阅读全文
posted @ 2026-04-07 17:37 不会coding的喵酱 阅读(3) 评论(0) 推荐(0)
摘要: 自己在学习《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版) (华章原创精品) - 周志明》时的一些思考和总结 1. 无关性的基石 平台无关性 字节码是构成平台无关性的基石,不同平台的java虚拟机,都统一支持的程序存储格式--字节码 语言无关性 不管是什么语言,只要能编译成class文件 阅读全文
posted @ 2026-04-07 16:59 不会coding的喵酱 阅读(6) 评论(0) 推荐(0)