写点什么

Java并发

166 人感兴趣 · 43 次引用

  • 最新
  • 推荐
https://static001.geekbang.org/infoq/40/404200eb5a096e48d233cae578cbe0d6.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

硬核!阿里出品 2023 版 Java 并发编程全优笔记,涵盖多线程所有核心知识

现在Java面试,问的是越来越底层。基本上规模大点的互联网公司都会对JVM,OS,算法,线程,IO等底层知识进行深入考察;其中粉丝反馈近期出去面试被问的最多,频次最高的技术栈当属多线程并发编程了。

Java 并发夺命 23 问

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~

阿里三面最后一问:解释一下 Java 并发 AQS 的独占锁模式

概述稍微对并发源码了解的朋友都知道,很多并发工具如ReentrantLock、CountdownLatch的实现都是依赖AQS, 全称AbstractQueuedSynchronizer。

https://static001.geekbang.org/infoq/34/34ce5ed38746e7918ff0c63fc6fc48e6.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

想稳中求进?字节大佬的硬核学习神器《图解 Java 并发编程》看了吗

金三银四,机会多多,短时间内想找到合适工作是也不是说不行。金三已经过半,马上迎来银四建议大家就做两件事:第一:整理工作经验,制定新年求职计划。等一些不错的公司放出新的hc,市场情况一回暖,马上开始面试。第二:回顾面试八股文和技术资料。主要是

盘点 JDK 中基于 CAS 实现的原子类

用户头像
JAVA旭阳
2022-12-06

JDK中提供了一系列的基于CAS实现的原子类,CAS 的全称是Compare-And-Swap,底层是lock cmpxchg指令,可以在单核和多核 CPU 下都能够保证比较交换的原子性。所以说,这些原子类都是线程安全的,所以在某些场景下性能是优于加锁。

乐观锁思想在 JAVA 中的实现——CAS

用户头像
JAVA旭阳
2022-12-05

生活中我们看待一个事物总有不同的态度,比如半瓶水,悲观的人会觉得只有半瓶水了,而乐观的人则会认为还有半瓶水呢。很多技术思想往往源于生活,因此在多个线程并发访问数据的时候,有了悲观锁和乐观锁。

深刻理解 JAVA 并发中的有序性问题和解决之道

用户头像
JAVA旭阳
2022-12-04

JAVA并发中的有序性问题其实比较难理解,本文通过一个例子验证了并发情况下会出现有序性的问题,从而引发意想不到的结果。这个主要的原因是为了提高性能,指令会发生重排序导致的。

https://static001.geekbang.org/infoq/91/918a45e195a3248218257fa5cd4dfec1.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

从零到一构建完整知识体系!阿里巴巴 Java 并发编程技术内幕全网首次公开

并发编程是Java语言中最为晦涩的知识点,它涉及操作系统、内存、CPU、编程语言等多方面的基础能力,更为考验一个程序员的内功。想要学好并发编程,你需要从一个个单一的知识和技术中“跳出来”,高屋建瓴地看问题,并逐步建立自己的知识体系。

https://static001.geekbang.org/infoq/de/de99fddb92f8432b9d65b9815f9c9af7.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

推荐一份关于 JDK 实现 & 源码解读的经典著作,强烈建议 Java 程序员都看看

用户头像
程序员小毕
2022-11-10

在Java中,并发就是多线程模式。而多线程编程也一直是一个被广泛而深入讨论的领域。如果遇到复杂的多线程编程场景,大多数情况下我们就需要站在巨人的肩膀上利用并发编程框架——JDK Concurrent包来解决相关线程问题。

Java 并发编程解析 | 如何正确理解 Java 领域中的锁机制,我们一般需要掌握哪些理论知识?

用户头像
Java快了!
2022-09-06

提起Java领域中的锁,是否有种“道不尽红尘奢恋,诉不完人间恩怨“的”感同身受“之感?细数那些个“玩意儿”,你对Java的热情是否还如初恋般“人生若只如初见”?

https://static001.geekbang.org/infoq/2b/2b3155bdbce058a08a5dbfd87d4ce2f6.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

离谱! 这本书居然将高深莫测的 Java 高并发知识讲解得浅显易懂

大家好,我是了不起的程序猿。2022金九银十即将来临了,随着5G时代已经开始,现在的各个大厂秋招基本都提高了 对Java应用的高性能、高并发的要求,也抬升了Java工程师的技术台阶 和面试门槛。

图解 Java 线程状态转换

用户头像
程序猿阿星
2021-11-03

大家好,我是阿星,好久不见,欢迎来到Java并发编程系列番外篇线程状态转换,内容通俗易懂,请放心食用。

小白必看,通俗易懂的 LockSupport

用户头像
程序猿阿星
2021-07-30

Java并发编程系列第三篇LockSupport,上一篇Synchronized文章中有提过,不推荐读者们使用Object的wait、notify、notifyAll等函数做多线程间的通信协同,使用LockSupport会是更好的选择,本篇就来谈谈LockSupport。

https://static001.geekbang.org/infoq/7c/7cd823643c027785e6ea28f6f6cc792a.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

In-depth Java synchronized

用户头像
shniu
2021-04-10

并发编程的两个核心问题:互斥和同步。互斥是指在同一时刻只允许一个线程访问共享资源;同步是指线程之间如何通信、协作。Java 中提供了很多并发编程的工具,其中有关键字 synchronized 也有 JUC 类库,为 Java 程序员编写并发程序带来很大的便利性。

https://static001.geekbang.org/infoq/98/98e3ca7e4c82189eda2f117bc63afc18.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Java 并发基础(三):再谈 CountDownLatch

用户头像
看山
2021-04-05

Java 并发基础(三):再谈 CountDownLatch

https://static001.geekbang.org/infoq/f6/f63f97c7002b42ab717c1ff3602c3257.webp?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Java 多线程并发控制工具信号量 Semaphore,实现原理及案例

用户头像
码农架构
2021-01-07

信号量(Semaphore)是Java多线程兵法中的一种JDK内置同步器,通过它可以实现多线程对公共资源的并发访问控制。一个线程在进入公共资源时需要先获取一个许可,如果获取不到许可则要等待其它线程释放许可,每个线程在离开公共资源时都会释放许可。

https://static001.geekbang.org/infoq/4c/4c9dc46ceaa757f6dfb1e4e5df0babce.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Java 并发编程:AQS 的互斥锁与共享锁

用户头像
码农架构
2020-12-22

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

https://static001.geekbang.org/infoq/2e/2e08da1d81dfd96f836e40cf3bad2ebf.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Java 并发编程:volatile 能否保证数据的同步

用户头像
码农架构
2020-12-17

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

https://static001.geekbang.org/infoq/d2/d29642031ded0b9b2dbbb606b51d5968.webp?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Java 并发编程:多线程如何实现阻塞与唤醒

用户头像
码农架构
2020-12-15

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

https://static001.geekbang.org/infoq/f7/f7d3cf254296f2f34197d626baf56a0f.webp?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Java 并发编程:任务执行器 Executor 接口

用户头像
码农架构
2020-12-14

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

https://static001.geekbang.org/infoq/ac/ac0559da5bf9b767603ea817c6b2d077.webp?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Java 并发编程:多线程并发内存模型

用户头像
码农架构
2020-12-14

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

https://static001.geekbang.org/infoq/15/151af1bd0a024f29a6d22c0db61bb1c9.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Java 并发编程:并发中死锁的形成条件及处理

用户头像
码农架构
2020-12-13

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

https://static001.geekbang.org/infoq/32/32e41b95ffe307a34c76316e7c4b36da.webp?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Java 并发编程:进程、线程、并行与并发

用户头像
码农架构
2020-12-09

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

https://static001.geekbang.org/infoq/f3/f31f1c65a6b9c333fe3063b3a75357ed.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

java 安全编码指南之:Thread API 调用规则

用户头像
程序那些事
2020-10-19

java中多线程的开发中少不了使用Thread,我们在使用Thread中提供的API过程中,应该注意些什么规则呢?

https://static001.geekbang.org/infoq/99/9917f7d0e2d28adbb8877343487afa15.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

死磕 Java 并发编程(9):无界线程安全队列 ConcurrentLinkedQueue 源码解析

用户头像
Seven七哥
2020-05-12

这篇文章理解起来不难,相比于 ConcurrentHashMap 比较简单,因为不涉及扩容以及数据迁移等操作,相信你读完一定会有收获的。

Java并发_Java并发技术文章_InfoQ写作社区