摘要:
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)

浙公网安备 33010602011771号