摘要: 作者:猴子007 选自:https://monkeysayhi.github.io “你知道茴香豆的‘茴’字有几种写法吗?” 纠结单例模式有几种写法有用吗?有点用,面试中经常选择其中一种或几种写法作为话头,考查设计模式和coding style的同时,还很容易扩展到其他问题。 这里讲解几种笔者常用的 阅读全文
posted @ 2023-09-22 11:17 StriverD 阅读(27) 评论(0) 推荐(0)
摘要: 分布式锁常见的三种实现方式: 数据库乐观锁; 基于Redis的分布式锁; 基于ZooKeeper的分布式锁。 本次面试考点是,你对Redis使用熟悉吗?Redis中是如何实现分布式锁的。 要点 Redis要实现分布式锁,以下条件应该得到满足 互斥性 在任意时刻,只有一个客户端能持有锁。 不能死锁 客 阅读全文
posted @ 2023-09-22 11:14 StriverD 阅读(146) 评论(0) 推荐(0)
摘要: 锁(lock)的代价 锁是用来做并发最简单的方式,其代价也是最高的,Java在JDK1.5之前都是靠synchronized关键字来加锁。但是加锁机制会有如下几个问题: 加锁、释放锁会需要操作系统进行上下文切换和调度延时,在上下文切换的时候,cpu之前缓存的指令和数据都将失效,这个过程将增加系统开销 阅读全文
posted @ 2023-09-22 11:02 StriverD 阅读(29) 评论(0) 推荐(0)