如何插入队列时数据均匀排布
2020-03-17 本文已影响0人
QZH_2019
需求:
假设有n条队列,讲数据入队列时,需要散列一下。
id为业务唯一标识
int h;
String key = String.valueOf(id); // 获取id的的hash值
int hash = (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16); // 对hash取模,路由到指定的内存队列中
int index = (n-1) & hash;
index就是要放入队列的索引