当前位置: 首页 > news >正文

网站建设需要英语吗长沙专业做网站公司

网站建设需要英语吗,长沙专业做网站公司,互联网广告是做什么的,WordPress 文章最多字HashMap头插死循环是指在JDK1.7中#xff0c;多线程环境下#xff0c;HashMap进行扩容时由于多个线程一起执行扩容#xff0c;可能会导致某一结点被错误插入头部并形成一个循环链表。 发生死循环的源码如下#xff1a; // hashmap由数组链表构成 void transfer(Entry[] ne…HashMap头插死循环是指在JDK1.7中多线程环境下HashMap进行扩容时由于多个线程一起执行扩容可能会导致某一结点被错误插入头部并形成一个循环链表。 发生死循环的源码如下 // hashmap由数组链表构成 void transfer(Entry[] newTable) {Entry[] src table;int newCapacity newTable.length;// 遍历老的数组元素移动到新数组里for (int j 0; j src.length; j) {EntryK,V e src[j]; // 老数组元素一个链表if (e ! null) {src[j] null; // 删除旧链表do {// 重点看这里的几行代码采用的是头插法EntryK,V next e.next;// 找到新链表对应数组下标int i indexFor(e.hash, newCapacity); e.next newTable[i];newTable[i] e;e next;} while (e ! null);}} } HashMap由数组链表构成假设容量为2扩容因子0.75 现在有两个线程T1和T2还要put元素5和7刚好hash冲突都放在了下标1的位置在线程T1和T2把要put的元素都被放进链表后通过链表解决哈希冲突它们发现超过了扩容因子所以两个线程开始执行扩容 此时T1、T2都指着同一个位置都是e指针指着7next指针指着5注意这里是不带头结点的链表所以每个结点都存数据e就是head旧链表 因为内存不够它们都意识到要对hashmap进行扩容扩容到40~3新链表 假设T1得到时间片先完成了扩容然后通过新的hash函数变到了新位置这里刚好还是1然后用不带头结点的头插法把原来位置的元素挪过来因为头插法所以顺序变反了735变成357但T2还是e指针指着7next指针指着5下图是T2的e 在轮到T2扩容的时候e.nextnewTable[i], newTable[i] e; e next; 就形成了一个循环链表。 虽然JDK1.8改成尾插法了不会死循环但是因为put和get都没加同步锁仍是线程不安全的
http://www.pierceye.com/news/784678/

相关文章:

  • 中间商可以做网站吗平面广告设计师的工作内容
  • 网站建设用户分析做网站有什么软件
  • 洛阳网站建设启辰网络wordpress怎么破解查看
  • 长沙市网站设计公司厦门建设网站建站
  • 网站做链轮会被惩罚吗网站开发系统
  • 一般做企业网站需要什么资料WordPress情侣博客模板
  • 网站开发教程公司哪些官网用wordpress
  • redis网站开发教程创建app软件
  • 企业网站新闻wp怎么做合肥环保公司网站建设
  • 怎么仿一个复杂的网站wordpress描述怎么改
  • php 如何用op浏览器开发手机网站app开发制作哪种快
  • 网站维护主要有哪些内容和方法网页制作需要学多久
  • 机械加工网站模板做蛋糕比较火的网站
  • 网站的折线图怎么做四川省建设厅官方网站
  • 域名备案 个人 网站基本信息查询wordpress mysql缓存
  • 优秀校园网站建设汇报个人备案的网站
  • 网站信息化建设报送电商网站 设计
  • 写作网站哪个好用有没有必要给企业做网站
  • 长沙cms建站模板设计说明英文翻译
  • 做的差的网站河北网站制作公司地址
  • 网站的推广有哪些方式AWS免费套餐做网站可以吗
  • 如何建设公司网站 需要注意什么iis搭建多个网站
  • 青海住房与建设厅网站本地门户网站源码
  • 自己做付费网站网站版式有哪几种
  • 商丘市做1企业网站的公司贵阳网站建设是什么
  • 如何制作动漫网站模板下载定制网站制作广州
  • 西安网站策划我做的网站不知道网站怎么办啊
  • 商务类网站设计成都网站设计建设推荐
  • 网站建设浏览器不兼容阳信做网站
  • 站酷设计网站官网网址网站多国语言