线程池ExecutorService和CountDownLatch组合使用处理大量数据和统计时间 最近在做公司的项目数据迁移,需要把大量的数据查出来做一些逻辑处理,依靠基本是不能完全实现,还是需要我们通过代码来处理。 传统操作是查出所有数据,然后遍历处理。 为了发挥多核CPU的优势,提升处理速度,...... 言曌 11月02日 2493 7 阅读全文
记录HashMap的七个面试题 第一题:当key为null时,这次put操作,数据将被放入哪个桶位?为什么? 0号桶位,这是因为HashMap计算桶位是根据你传入key的hashcode进行一个扰动函数或者说二次hash之后,然...... 言曌 05月16日 3412 6 阅读全文
线程安装的List:Collections.synchronizedList与CopyOnWriteArrayList比较 之前帮一个朋友写代码的时候,遇到一个需要遍历列表。 一、单线程:性能较差 版本一、单线程方式 Long startTime = Syste...... 言曌 08月20日 2742 5 阅读全文
谈谈ConcurrentHashMap1.7和1.8的不同实现 ConcurrentHashMap 在多线程环境下,使用HashMap进行put操作时存在丢失数据的情况,为了避免这种bug的隐患,强烈建议使用ConcurrentHashMap代替HashMap,为...... 言曌 12月21日 2701 8 阅读全文
HashMap多线程并发问题分析 一、并发问题的症状 1.多线程put后可能导致get死循环 CPU利用率过高一般是因为出现了出现了死循环,导致部分线程一直运行,占用cpu时间。问题原因就是HashMap是非线程安全的,多个线程p...... 言曌 12月21日 2017 6 阅读全文
JDK1.7 ConcurrentHashMap的实现原理和使用 ConcurrentHashMap是线程安全且高效的HashMap。本节我们一起研究该容器如何保证线程安全的同时,又保证高效的操作。 一、为什么要使用 ConcurrentHashMap 1.线程...... 言曌 12月21日 1450 6 阅读全文
线程的五大状态 Java中的线程的生命周期大体可分为5种状态。 1. 新建(NEW):新创建了一个线程对象。 2. 可运行/就绪(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的st...... 言曌 07月04日 1676 6 阅读全文
轻松掌握java读写锁(ReentrantReadWriteLock)的实现原理 原文地址:http://blog.csdn.net/yanyan19880509/article/details/52435135 前言 前面介绍了java中排它锁,共享锁的底层实现机制,本篇再进...... 言曌 03月15日 1885 6 阅读全文
Java 中 Lock 接口详解 摘要: 我们已经知道,synchronized 是Java的关键字,是Java的内置特性,在JVM层面实现了对临界资源的同步互斥访问,但 synchronized 粒度有些大,在处理实际问题时存在诸...... 言曌 03月15日 1502 7 阅读全文
深入剖析java并发之阻塞队列 LinkedBlockingQueue 和实现“生产者/消费者”模式 上一篇文章介绍了使用 wait/notify 实现 生产者消费者,先看下面这个例子 public class ProductTest3 { public sta...... 言曌 03月14日 1891 6 阅读全文
基于 wait/notify 实现“生产者/消费者”模式 生产消费互相竞争,最多生产20个 package thread.test; /** * @author 言曌 * @date 2018/3/14 上午9...... 言曌 03月14日 1882 6 阅读全文
为什么 stop() 和 suspend() 方法被废除 JDK1.0定义了stop和suspend方法: 从JDK1.2开始,这两个方法都被弃用了.stop天生就不安全,而经验告诉我们呢suspend方法会经常导致死锁。 stop这个方法将终止...... 言曌 03月12日 3958 6 阅读全文
HashMap的容量与扩容 紧接着上一篇文章 HashMap 实现原理和源码分析,因为上篇文章在扩容方面写得并不详细,博主于是在网上找了一篇比较好的关于 HashMap 的扩容的文章 原文地址:http://blog.c...... 言曌 03月06日 2288 6 阅读全文
HashMap 实现原理和源码分析 HashMap 源码分析是面试中常考的一项,下面一篇文章讲得很好,特地转载过来。 本文转自:https://www.cnblogs.com/chengxiao/p/6059914.html ...... 言曌 03月06日 2206 6 阅读全文
JAVA 对象的序列化 下面将介绍对象的序列化——一种将对象转成字节方便传送到别处或存储在硬盘上,并且再从转化成的字节重构对象的机制。 序列化是分布式管理必备的工具,分布式处理中将对象从一个虚拟传到另一个虚拟机。序列化...... 言曌 03月06日 1699 6 阅读全文