zoukankan      html  css  js  c++  java
  • 1.4任务

    线程池相关问题

    concurrentHashmap;(https://crossoverjie.top/2018/07/23/java-senior/ConcurrentHashMap/)关于hashmmap的部分问题

    hashmap

    1.7put:

    根据key计算hashcode,根据hashcode定位桶,若是链表遍历,发现key与hashcode值都符合的覆盖其value值,没有就头插法,若发现对应hashcode的桶为空则新增一个节点写入

     1.7get:

    找到与key对应的value ,判断是否是链表,不是返回,是就遍历直到key与hashcode都相等。

     

    1.8最重要的变化得到就是引入了红黑树来替代链表提升查找的性能,使用尾插法来替代头插法。并且从先扩容后插入——————>先插入再扩容

     

    使用concurrenthashmap解决并发问题

    1.7使用分段锁将一个分段锁对应多个桶

    put:

    通过key定位到segment

    尝试获得锁,得不到就自选,超过阈值就阻塞

    根据key计算hashcode,根据hashcode定位桶,若是链表遍历,发现key与hashcode值都符合的覆盖其value值,没有就头插法,

                若发现对应hashcode的桶为空则新增一个节点写入

    get:ConcurrentHashMap 的 get 方法是非常高效的,因为整个过程都不需要加锁。

    1.8:将分段锁换成CAS与synchronized

    put:

    先用CAS尝试不行再加锁synchronized

    get

    • 根据计算出来的 hashcode 寻址,如果就在桶上那么直接返回值。
    • 如果是红黑树那就按照树的方式获取值。
    • 就不满足那就按照链表的方式遍历获取值。

    automicinteger;

    对象的组成

  • 相关阅读:
    8.使用背景图,制作雪碧图效果
    7.使用定位制作轮播图样式
    6.使用定位,制作弹出框界面
    App 抓包代理设置
    Cypress 自动化环境搭建
    Android APP 性能测试之 GT 工具
    接口测试流程
    接口结构内容
    接口定义
    网络七层协议
  • 原文地址:https://www.cnblogs.com/lvoooop/p/12150390.html
Copyright © 2011-2022 走看看