摘要: 实现思路 源代码 public class SharedQueue { private int queueSize = 10; private ArrayBlockingQueue<Integer> queue = new ArrayBlockingQueue<>(queueSize); class 阅读全文
posted @ 2025-07-10 21:36 Charlie-Pang 阅读(8) 评论(0) 推荐(0)
摘要: 方法名 所属类 是否释放锁 线程状态变化 用途 抛异常 join() Thread 类 ❌ 不释放锁 当前线程等待目标线程执行完 等待其他线程执行完再继续执行 是 sleep() Thread 类 ❌ 不释放锁 当前线程暂停指定时间 模拟延时、节省 CPU 资源等 是 wait() Object 类 阅读全文
posted @ 2025-07-10 18:02 Charlie-Pang 阅读(21) 评论(0) 推荐(0)
摘要: 举例解释 AtomicInteger counter = new AtomicInteger(5); boolean success = counter.compareAndSet(5, 6); // 如果当前是5,则设置为6 原理 1、CAS 依赖底层 CPU 提供的汇编语言原子指令 lock c 阅读全文
posted @ 2025-07-10 16:35 Charlie-Pang 阅读(9) 评论(0) 推荐(0)
摘要: 该图是volatile关键字更新的过程。 JMM内存模型 read(读取):从主内存读取数据 load(载入):将主内存读取到的数据写入工作内存 use(使用):从工作内存读取数据来计算 assign(赋值):将计算好的值重新赋值到工作内存中 store(存储):将工作内存数据写入主内存 write 阅读全文
posted @ 2025-07-10 16:20 Charlie-Pang 阅读(9) 评论(0) 推荐(0)
摘要: as-if-serial语义 不管怎么重排序(编译器和处理器为了提高并行度),(单线程)程序的执行结果不能被改变。 happens-before 8大原则 阅读全文
posted @ 2025-07-10 14:51 Charlie-Pang 阅读(5) 评论(0) 推荐(0)
摘要: 描述 相关命令 阅读全文
posted @ 2025-07-09 18:52 Charlie-Pang 阅读(4) 评论(0) 推荐(0)
摘要: String类型 value是字符串,不过根据字符串格式不同,分为3类: string:普通字符串 int:整形类型,可以做自增、自减操作 float:浮点类型,可以做自增、自减操作 不管哪种格式,底层都是都是字节数组形式存储,只不过编码方式不同,字符串类型的最大空间不能超过512m 在String 阅读全文
posted @ 2025-07-09 18:37 Charlie-Pang 阅读(10) 评论(0) 推荐(0)
摘要: /** * 懒汉模式,有线程安全问题 */ public class Singleton { public static Singleton singleton; public static Singleton getSingleton() { if(singleton==null){ single 阅读全文
posted @ 2025-07-09 15:13 Charlie-Pang 阅读(4) 评论(0) 推荐(0)
摘要: 如果数据都正好在索引树上,那么查询时直接从索引树上获取,不需要再回表查询其他字段。 比如:表的主键是id,二级索引是name,覆盖索引是:通过二级索引只查询name和id,减少了回表查询的过程吗,查询效率较高。 阅读全文
posted @ 2025-07-09 11:07 Charlie-Pang 阅读(7) 评论(0) 推荐(0)
摘要: mysql中通过二级索引/辅助索引查询到主键Id,然后再根据主键id查询数据(二级索引不存储数据,只存储主键索引),即回表查询。 阅读全文
posted @ 2025-07-09 11:03 Charlie-Pang 阅读(13) 评论(0) 推荐(0)