摘要: 用法: synchronized修饰代码块或者方法,不需要手动释放,默认非公平 ReentrantLock需要手动调用,手动释放,能够控制公平机制,能够尝试获取和超时获取锁,能更好的控制锁行为,在需要通过线程提高性能的场景中,能比较好的操控 基本原理: synchronized是靠管程(monito 阅读全文
posted @ 2023-07-15 18:45 时间羚羊 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 这种问题的话,肯定是要提前设置好缓存的 第二要有相对严格的双写一致策略,只要数据库数据发生变化,就要主动更新缓存,可以用binlog,代码层面可以用读写锁限制写的请求 第三要使用定时任务固定刷新 第四要有判空操作,一般的缓存使用,如果不存在的key,可能会前往db进行查询,可以打破这一规则,至于用什 阅读全文
posted @ 2023-07-15 16:42 时间羚羊 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 常见操作系统的线程状态是五种 创建 --> 就绪 --> 运行 -> 阻塞 --> 终止 java中定义了六中,主要是依据锁的行为 create --> runnable --> waiting --> time_waiting --> blocked --> terminate java中的run 阅读全文
posted @ 2023-07-15 08:59 时间羚羊 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 为什么不推荐stop 主要它不释放锁资源,尤其暴力终止,可能会导致业务执行到一半,出现各种问题。 为什么使用interrupt方法 通常使用自带的方法,而不是使用自定义的业务标识,是因为interrupt能修改线程状态,java线程的终止,需要从runnable终止。如果仅仅使用自定义的终止标志,有 阅读全文
posted @ 2023-07-15 08:21 时间羚羊 阅读(4) 评论(0) 推荐(0) 编辑