- 博客(6)
- 收藏
- 关注
原创 hashmap和hashtable
一,Hashmap存储结构:Hashmap底层是一个数组,默认初始容量为16,当链节点小于等6 自动退化链表大于等于8,长度等于64进行变化红黑树,进行一个2倍扩容.哈希算法:使用hash算法来计算key-value的存储位置在JDK1.7中,HashMap数据结构为数组+链表;
2024-03-19 16:44:12 118
原创 hash一致性原理和实现
1,一致性哈希算法是将每个node接待你映射到一个圆环上,将各Node的key采用hash计算,可得到一个整数数组, 将服务请求使用哈希算法算出对应的hash值,然后根据hash值的位置沿圆环顺时针查找,进行排序 然后首尾。2.单调性: 指如果已经有一些内容通过哈希分派到了相应的缓冲中,又有新的缓冲区加入到系统中,那么哈希的结果应能够保证原有已分配的内容可以被映射到新的缓冲区中去,而不会被映射到旧的缓冲集合中的其他缓冲区。2,node的Key 分布在不同的弧段上,更好地使用数据的快速增长,
2024-03-19 16:08:58 201
原创 乐观锁和悲观锁区别
java中真正的CAS操作调用native方法,因为整个过程没有“加锁”和“解锁”操作,也成为无锁编程,但是只有一个线程可以成功更新数据,其他更新数据需回滚重试,CAS利用CPU指令,从硬件层面保证了操作原子性.悲观锁阻塞事务,乐观锁回滚重试,各有优缺点,像乐观锁适用比写比较少的情况下,冲突很少发生,可以省去锁的开销,加大系统吞吐量。加版本号,提交的时候version+1,下次提交修改时候,会带上版本号去判断,如果版本修改了,那么线程重试,或者提示错误。悲观锁依赖数据库锁,效率低,更新失败概率也低。
2024-03-19 14:50:29 171
原创 多线程全面详解
1. 更好的利用Cpu的资源,如果只有一个线程,第二个任务必须要等待, 反之多线程在主线程执行任务的同时,也可以执行其他任务,不需等待。就绪: 线程对象调用start()方法后,就处于就绪状态。等待/阻塞/唤醒: 线程执行了sleep()方法。运行: 获取cpu资源后执行run()方法,2.进程之间是不能功效数据, 线程可以。3.系统创建进程需要重新分配资源,
2024-03-15 15:43:59 199 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人