其实所谓的高并发,如果你要理解这个问题呢,其实就得从高并发的根源出发,为啥会有高并发?为啥高并发就很牛逼? 我说的浅显一点,很简单,就是因为刚开始系统都是连接数据库的,但是要知道数据库支撑到每秒并发两三千的时候,基本就快完了。所以才有说,很...

1. 基于线程的join(long millis)方法 其实这个方法比较牵强,因为它主要作用是用来多个线程之间进行同步的。但因为它提供了这个带参数的方法(所以这也给了我们一个更广泛的思路,就是一般带有超时参数的方法我们都可以尝试着用它来实现...

父类静态成员变量、父类静态代码块 👉🏿 子类静态成员变量、子类静态代码块 👉🏿 父类成员变量、父类代码块 👉🏿 父类构造方法 👉🏿 子类成员变量、子类代码块 👉🏿 子类构造方法 Java中类及方法的加载顺序 Java类加载顺序

“没有测量,就没有科学。”这是科学家门捷列夫的名言。在计算机科学中,特别是在机器学习的领域,对模型的测量和评估同样至关重要。只有选择与问题相匹配的评估方法,我们才能够快速的发现在模型选择和训练过程中可能出现的问题,迭代地对模型进行优化。本文...

常见类型包括LFU、LRU、ARC、FIFO、MRU。 最不经常使用算法(LFU, Least Frequently Used): 这个缓存算法使用一个计数器来记录条目被访问的频率。通过使用LFU缓存算法,最低访问数的条目首先被移除。这...

字符串: SDS list: 元素少且小 👉🏿 ziplist , 元素多且大 👉🏿 双链表 hash: 元素少且小 👉🏿 ziplist , 元素多且大 👉🏿 hashtable zset: 元素少且小 👉🏿 ziplist , 元素多且...

悲观锁 共享锁、排他锁 共享锁,也就是其他事务可以并发读(其他事务也需要加共享锁),但是不能写。 排它锁,其他事务不能并发写也不能并发读。 乐观锁 乐观锁其实也不是实际的锁,甚至没有用到锁来实现并发控制,而是采取其他方式来判断能否修改数...

我们知道java在运行的时候有两个地方可能用到重排序,一个是编译器编译的的时候,一个是处理器运行的时候。 那么我们就应该问问为啥要用指令重排序呢? 编译期重排序有啥好处? CPU计算的时候要访问值,如果常常利用到寄存器中已有的值就不用去内存...

数据库与缓存双写可以有4种顺序: 更新缓存->更新db、更新db->更新缓存、删除缓存->更新db、更新db->删除缓存 前两种顺序有显著的缺陷: 后更新的数据源失败,因为无法将先更新的数据源回滚(redis)或者不知道该不该回滚(超时)...