Java并发
83 人感兴趣 · 24 次引用
- 最新
- 推荐

Java 并发编程:AQS 的互斥锁与共享锁
我们知道现代机器处理器几乎都是多核多线程的,引入多核多线程机制是为了尽可能提升机器整体处理性能。但是多核多线程也会带来很多并发问题,其中很重要的一个问题是数据竞争,数据竞争即多个线程同时访问共享数据而导致了数据冲突(不正确)。数据竞争如果没

Java 并发编程:volatile 能否保证数据的同步
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。

Java 并发编程:多线程如何实现阻塞与唤醒
线程的阻塞和唤醒在多线程并发过程中是一个关键点,当线程数量达到很大的数量级时,并发可能带来很多隐蔽的问题。如何正确暂停一个线程,暂停后又如何在一个要求的时间点恢复,这些都需要仔细考虑的细节。Java为我们提供了多种API来对线程进行阻塞和唤醒操作

Java 并发编程:任务执行器 Executor 接口
任务执行器(Executor)是一个接口,位于java.util.concurrent包下,它的作用主要是为我们提供任务与执行机制(包括线程使用和调度细节)之间的解耦。比如我们定义了一个任务,我们是通过线程池来执行该任务,还是直接创线程来执行该任务呢?通过Executor就能

Java 并发编程:多线程并发内存模型
多任务处理在现代计算机操作系统中几乎已是一项必备的功能了。在许多情况下,让计算机同时去做几件事情,不仅是因为计算机的运算能力强大了,还有一个很重要的原因是计算机的运算速度与它的存储和通信子系统速度的差距太大,大量的时间都花费在磁盘I/O、网络

Java 并发编程:并发中死锁的形成条件及处理
死锁是一种无限的互相等待的状态,两个或两个以上的线程或进程构成一个互相等待的环状。以两个线程为例,线程一持有A锁同时在等待B锁,而线程二持有B锁同时在等待A锁,这就导致两个线程互相等待无法往下执行。现实生活中一个经典的死锁情形就是四辆汽车通过没

Java 并发编程:进程、线程、并行与并发
一谈到Java并发编程,我们一般就会联想起进程、线程、并行、并发等等概念。那么这些概念都代表什么呢?进程与线程有什么关系?并发与并行又是什么关系呢?

java 安全编码指南之:Thread API 调用规则
java中多线程的开发中少不了使用Thread,我们在使用Thread中提供的API过程中,应该注意些什么规则呢?

死磕 Java 并发编程(9):无界线程安全队列 ConcurrentLinkedQueue 源码解析
这篇文章理解起来不难,相比于 ConcurrentHashMap 比较简单,因为不涉及扩容以及数据迁移等操作,相信你读完一定会有收获的。

死磕 Java 并发编程(8):CurrentHashMap 如何实现高效地线程安全?在 Java8 中有哪些设计实现的演进?
ConcurrentHashMap在Java8中有哪些优化?

死磕 Java 并发编程(7):读写锁 ReentrantReadWriteLock 源码解析
这是《死磕Java并发编程》系列的第7篇文章 我们在一起来看看 读写锁 ReentrantReadWriteLock 的源码分析,基于Java8。

死磕 Java 并发(5):线程详解,Java 开发这么久,这些线程的基础知识你确定都会了?
Java线程的状态,以及如何安全的启动和停止你都掌握了?看了本文你一定会有很大的收获

死磕 Java 并发编程(4):happens-before 是什么?JMM 最最核心的概念,看完你就懂了
happens-before是JMM最核心的概念。对应Java程序员来说,理解happens-before是理解JMM的关键。

死磕 Java 并发编程(3):volatile 关键字不了解的赶紧看看
深入解析 高频面试点 volatile 关键字的内存语义和实现,赶紧来看看

阿里面试,一面就倒在了 Java 内存模型上?赶紧来看看
最近金三银四跳槽找工作的高峰期,我也凑热闹准备出去看看机会,结果就写了简历,一边投一边复习准备试试水,结果一周内就接到了阿里的面试邀约,结果一面就凉了。

死磕 Java 并发编程(1):探究 Java 并发机制的底层原理
说到并发编程,相信很多人和我一样,对于“并发编程” 这个名词,一下就想到了多线程程序。紧接着又会想到涉及到锁的相关知识、线程池等一些知识片段。 但是对于这些知识的底层原理或者说JDK提供给我们的并发包下面的工具类,都是没怎么接触过的。