标签:并发
-
Java基础:JAVAHashmap的死循环及Java8的修复
在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死…
-
Sharding-JDBC教程:Spring Boot整合Sharding-JDBC实现数据分表+读写分离
读写分离 在上一篇文章介绍了如何使用Sharing-JDBC实现数据库的读写分离。读写分离的好处就是在并发量比较大的情况下,将查询数据库的压力 分担到多个从库中,能够满足高并发的要…
-
第5篇:死磕 java集合之ConcurrentHashMap源码分析(一)
开篇问题 (1)ConcurrentHashMap与HashMap的数据结构是否一样? (2)HashMap在多线程环境下何时会出现并发安全问题? (3)ConcurrentHas…
-
Java并发编程:JMM和volatile关键字
Java内存模型 随着计算机的CPU的飞速发展,CPU的运算能力已经远远超出了从主内存(运行内存)中读取的数据的能力,为了解决这个问题,CPU厂商设计出了CPU内置高速缓存区。高速…
-
001-一、GC 性能优化 – G1垃圾收集器入门
G1垃圾收集器入门 concurrent: 并发, 多个线程协同做同一件事情(有状态) parallel: 并行, 多个线程各做各的事情(互相间无共享状态) 在 GC 领域: co…
-
Java并发编程:线程封闭和ThreadLocal详解
什么是线程封闭 当访问共享变量时,往往需要加锁来保证数据同步。一种避免使用同步的方式就是不共享数据。如果仅在单线程中访问数据,就不需要同步了。这种技术称为线程封闭。在Java语言中…
-
12-Java中级面试题进阶(十二)-分布式锁篇
引言 为什么要使用分布式锁?为了保证一个方法在高并发情况下的同一时间只能被同一个线程执行,在传统单体应用单机部署的情况下,可以使用Java并发处理相关的API(如Reentrant…
-
015-十五、Java 9 – CompletableFuture API ( 上 )
引言 CompletableFuture 类是在 Java 8 引入的。用于表示一个 Feture 的状态,可以通过设置其值或状态来明确表示 Feture 处于完成状态 说起来特拗…
-
26-Java基础面试题(二十六)- 并发
161,Java内存模型是什么? Java内存模型规定和指引Java程序在不同的内存架构、CPU和操作系统间有确定性地行为。它在多线程的情况下尤其重要。 Java内存模型对一个线程…
-
019-十九、Java并发 Java wait() 和 notify() 方法
引言 大家有没有发现,其实 「 一文秒懂 」 系列讲述的都是多线程并发开发的问题。这个话题太大了,估计没有上百篇文章都解释不清楚。 本文,我们来讲解下 Java 并发中的基础的基础…
-
018-十八、Java并发 Java 之 Runnable 还是 Thread?
引言 写 Java 代码的时候,我们经常会有这样的疑问:我到底是实现一个 Runnable 呢,还是扩展一个 Thread 类? 你的答案是什么呢? 那有没有标准答案呢? 答案是什…
-
017-十七、Java并发 Java Thread 生命周期
引言 本文中,我想详细的讨论下 Java 中的核心概念 – 线程的生命周期。我会使用一张我自制的图片加上实用的代码片段,一步一步的详细剖析线程的各个状态和各个状态之间如…
-
016-十六、Java并发 Java ThreadLocalRandom
引言 随机数生成是一个非常常见的操作,而且 Java 也提供了 java.util.Random 类用于生成随机数,而且呢,这个类也是线程安全的,就是有一点不好,在多线程下,它的性…
-
015-十五、Java并发 Java java.util.concurrent.Future
引言 写了几篇 · 一文秒懂 XXX 系列的文章后,对 · 并发编程的设计思想真的是竖然起敬。 · 在并发方面引入了 「 将来 」( Future ) 这个概念。把所有不在主线程执…
-
014-十四、Java并发 Java 守护线程 ( Daemon Thread )
引言 在这篇简短的文章中,我们将讲解下 Java 中的守护线程,看看它们可以做什么。我们还将解释守护线程和用户线程之间的区别。 守护线程和用户线程的区别 Java 提供了两种类型的…
-
013-十三、Java并发 Java java.util.concurrent.Locks
引言 对于 Java 来讲,锁 ( Lock ) 是一种比标准同步块 ( synchronized block ) 更灵活,更复杂的线程同步机制。 其实,Java 1.5 就已经存…
-
012-十二、Java并发 Java BlockingQueue
引言 本文中,我们将介绍一个 java.util.concurrent 包提供的用于解决并发生产者 – 消费者问题的最有用的类 – BlockQueue。我…
-
011-十一、Java并发 Java CountDownLatch
引言 本章节我们来讨论下 java.util.concurrent.CountDownLatch 这个类,顺带演示下如何在一些实际例子中使用它。 CountDownLatch 类的…
-
010-十、Java并发系列之 Java 并发编程面试题
引言 应聘 Java 岗,总是免不了几个 Java 并发编程的面试题,不过大多数都局限在 java.util.concurrent 包下的知识和实现问题。本文针对 Java 并发相…
-
009-九、Java并发 Java CompletableFuture ( 下 )
引言 上一章节中我们讲解了 CompletableFuture 的一些基本用法,比如如何使用和如何处理异步计算结果。本章节我们继续,主要讲解如何使用 CompletableFutu…