Hash与Bitmap算法优化及多线程应用探讨.pdfVIP

  • 0
  • 0
  • 约3.25千字
  • 约 14页
  • 2026-04-29 发布于北京
  • 举报

Hash与Bitmap算法优化及多线程应用探讨.pdf

思考

1.Hash扩容算法在多线程情况有什么问题?

2.如何在3亿个整数(0~2亿)中判断某一个数是否存在?内存限制500M,一台机器。

分治:

布隆过滤器:

Redis

Hash:开3亿个空间,HashMapput(key,value)put(1,true);

数组:问题;data[2亿],开始都为0,data[1]=1表示存在可行吗?不可形

Bit:bitMap,位图;

最小的单位:bit,byte

1Btye=8bit

Char

Int=bit?Int=4byte=4*8bit

Hash扩容

扩容算法在多线程时的问题:

1.多线程put操作,get会死循环()。这个确实可以优化掉,比如扩容的时候我们新开一个数组,不要使用共享的那个数组

2.多线程put可能会导致get取值错误

为什么会出现死循环呢?

上节课我们讲到hash时我们会采用了链式结构来保存的值。如果我们在遍历这个链表时本身是这样的1-2-3-null

如果我们遍历到3本身应该是

文档评论(0)

1亿VIP精品文档

相关文档