美文网首页
如何插入队列时数据均匀排布

如何插入队列时数据均匀排布

作者: QZH_2019 | 来源:发表于2020-03-17 10:29 被阅读0次

需求:
假设有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就是要放入队列的索引

相关文章

  • 如何插入队列时数据均匀排布

    需求:假设有n条队列,讲数据入队列时,需要散列一下。 id为业务唯一标识 index就是要放入队列的索引

  • 并发编程二:线程池

    一、队列 1.队列 队列是先进先出的数据结构(FIFO),在队尾插入,在对头取出。 2.阻塞队列 当队列满时,继续...

  • Java并发-22.阻塞队列

    阻塞队列(BlockingQueue)是一种支持两个附加操作的队列: 支持阻塞的插入:队列满时,队列阻塞插入元素的...

  • 225-用队列实现栈

    用队列实现栈 举个栗子,插入数据为1,2,3,4的过程如下: 每次插入时,都对队列进行处理,使得最新插入的元素放到...

  • MySQL优化—插入语句的优化

    插入语句如何优化? 插入数据时,影响插入速度的主要是索引、唯一性校验、一次插入数据的条数等。 插入数据的优化,不同...

  • 阻塞队列和线程池

    1.阻塞队列 1)支持阻塞的插入方法:意思是当队列满时,队列会阻塞插入元素的线程,直到队列不满。2)支持阻塞的移除...

  • 队列

    如何理解“队列”? 特点 先进先出,后进后出 “操作受限”的线性表,队列尾部插入,队列头部删除 顺序队列和链式队列...

  • 深入理解java并发编程之线程池原理和源码

    队列: 队列是先进先出的数据结构,就是先进入队列的数据,先被获取。但是有一种特殊的队列叫做优先级队列,它会对插入的...

  • 2.3队列

    1.队列(Queue):具有一定操作约束的线性表 插入和删除操作:只能在一端插入,而在另一端删除数据插入:入队列(...

  • Android中的线程与线程池

    阻塞队列BlockingQueue 阻塞队列常用于生产者——消费者模型,生产者往阻塞队列插入数据,消费者往阻塞队列...

网友评论

      本文标题:如何插入队列时数据均匀排布

      本文链接:https://www.haomeiwen.com/subject/ydmzehtx.html