本文梳理并发哈希表的核心难题:锁粒度与扩容搬迁。并发表仅保证单操作原子,get后put仍会丢更新,应改用merge等原子方法。对比JDK7分段锁、JDK8桶锁加协作扩容、分裂有序表不搬元素、NonBlockingHashMap及Go sync.Map等实现,并给出桶长分布、扩容复制比例约六分之一等实测数据。
根据之前的部分总结,tokio定时器是一个时间轮加锁的结构,所有操作都需要使用原子锁。所有worker在操作定时器时都需要争抢同一把锁,锁的粒度过大。
完成下面两步后,将自动完成登录并继续当前操作。