
并发
文章平均质量分 91
清水贤人
为清清楚楚的现在努力
展开
-
HashMap原理之存和取
早上看到云栖社区的一篇关于 HashMap实现原理 的文章 结合自己掌握的和理解的 简单再次总结下HashMap的存和取的原理 HashMap继承实现结构: java.util.HashMap 继承了 java.util.AbstractMap 继承了 java.lang.Object; public class HashMap extends AbstractMap原创 2017-03-27 11:55:11 · 1085 阅读 · 0 评论 -
HashMap调优和ConcurrentHashMap分析
之前谈到了HashMap的存和取,这次来聊一下它的调优,以及多线程下的不用HashMap转用ConcurrentHashMap的一点浅析 重述HashMap工作原理: HashMap是基于hash原理,我们使用put()存储对象,使用get()获取对象当我们给put方法传键值时,他会先调用hashCode方法,用于查找键值在 bucket的位置,进而存储对象的键值对当两个对象的hash原创 2017-03-28 20:31:13 · 1629 阅读 · 0 评论 -
JAVA中的原子操作类
多线程情况下,要保证操作数据的原子性, 原子性:就是不能再往下细分的操作,JAVA 的原子操作的原理 主要是利用了CAS原理,限于篇幅 建议移步 大神的关于CAS原理的文章 以为为类操作的API和相关注释,直接上源码 原子更新基本类型类: package com.hhx.offline_tools.encode.Atomic; import java.util.concurrent.at原创 2017-03-31 17:35:38 · 1053 阅读 · 0 评论 -
volatile原理浅析
在多线程并发变成中,volatile是扮演者重要的角色,下面主要从使用、原理来分析: 使用方法: public class volatileTest { //将成员变量声明为volatile volatile long vl = 0L; public static void main(String[] args) { // TODO Auto-generated metho原创 2017-03-24 21:18:36 · 705 阅读 · 0 评论 -
synchronized原理浅析
其实volatile和synchronized 两个操作在多线程中应用都很多,上篇文章谈到了volatile 这里主要说下后者 volatile和synchronized区别: volatile用的恰当的话会比synchronized使用和执行成本更低,因为他不会引起线程上下文的切换和调度关键之synchronized可以修饰方法或者以同步块的形式来进行使用,他主要是确保多线程原创 2017-03-25 13:18:16 · 478 阅读 · 0 评论