Bootstrap
万字长文 | 16张图解开AbstractQueuedSynchronizer

Java并发编程系列第四篇AbstractQueuedSynchronizer,文章风格依然是图文并茂,通俗易懂,本文带读者们深入理解AbstractQueuedSynchronizer设计思想。

什么是线程安全?并发问题的源头

什么是线程安全?并发问题的三个源头:线程切换带来的原子性、缓存带来的可见性、编译优化带来的原子性

【并发编程技术】「技术辩证分析」在并发编程模式下进行线程安全以及活跃性问题简析

线程安全,有两个重要的特征说明:“共享”和“可变”。

CompletableFuture运行流程源码详解

CompletableFuture用起来着实舒服,代码一写,异步跑起来,时间缩短了不少(一个IO任务单线程40多分钟,用上多线程CompletableFuture,直接变成7分钟了)。代码是用起来了, 很舒服,但是里面的原理,想必有些大兄弟还不怎么清楚。今天就来一步步分析

【高并发】一文解密诡异并发问题的第一个幕后黑手——可见性问题

什么是可见性?说的直白些,就是两个线程共享一个变量,无论哪一个线程修改了这个变量,则另外的一个线程都能够看到上一个线程对这个变量的修改。这里的共享变量,指的是多个线程都能够访问和修改这个变量的值,那么,这个变量就是共享变量。

☕【Java深层系列】「并发编程系列」让我们一起探索一下CyclicBarrier的技术原理和源码分析

CyclicBarrier和CountDownLatch 都位于java.util.concurrent这个包下,其工作原理的核心要点。

在 Go 中使用并发编程 - 第二部分

在第一部分中,我们介绍了什么是并发和并行,什么是计算机线程和进程(https://xie.infoq.cn/article/3b61de5954816a5d260ef231f),这一部分我们将介绍线程调度

G-P-M 调度模型深度解析之手撸一个高性能 goroutine 池

本文将通过 Go runtime 对 goroutine 的调度分析,帮助大家理解它的机理和发现一些内存和调度的原理和问题,并且基于此提出一种个人的解决方案 — 一个高性能的 Goroutine Pool(协程池)。

【高并发】要想学好并发编程,关键是要理解这三个核心问题

写【高并发专题】有一段时间了,一些读者朋友留言说,并发编程很难,学习了很多的知识,但是在实际工作中却无从下手。其实,造成这种现象的本质原因就是没有透彻的理解并发编程的精髓,而学好并发编程的关键是需要弄懂三个核心问题:分工、同步和互斥。

在 Go 中使用并发编程 - 第二部分

在第一部分中,我们介绍了什么是并发和并行,什么是计算机线程和进程(https://xie.infoq.cn/article/3b61de5954816a5d260ef231f),这一部分我们将介绍线程调度

解密诡异并发问题的幕后黑手:可见性问题

​​摘要:可见性问题还是由CPU的缓存导致的,而缓存导致的可见性问题是导致诸多诡异的并发编程问题的“幕后黑手”之一。

面试官:小伙子,听说你看过ThreadLocal源码?(万字图文深度解析ThreadLocal)

TheadLocal万字图文全解析,学会ThreadLocal看这一篇就够了! 全程大白话讲解,一步一图,做到最接地气的技术分享者!

【高并发】明明中断了线程,却为何不起作用呢?

当我们在调用Java对象的wait()方法或者线程的sleep()方法时,需要捕获并处理InterruptedException异常。如果我们对InterruptedException异常处理不当,则会发生我们意想不到的后果!

【高并发】如何确保线程按照我们想要的顺序执行?

今天,我们继续聊【高并发】系列的话题,今天,我们来聊聊如何确保线程按照我们想要的顺序执行。

☕【Java深层系列】「并发编程系列」让我们一起探索一下CyclicBarrier的技术原理和源码分析

CyclicBarrier和CountDownLatch 都位于java.util.concurrent这个包下,其工作原理的核心要点。

iOS 面试策略之系统框架-并发编程

所有的语言都会涉及并发编程,并发就是多个任务同时运行,这也几乎是所有语言最难的地方。iOS 开发中,并发编程主要用于提升 App 的运行性能,保证App实时响应用户的操作。其中我们日常操作的 UI 界面就是运行在主线程之上,是一个串行线程。如果我们将所有的

☕️【Java技术之旅】【AbstractQueuedSynchronizer】教你自定义实现自己的同步器

之前的文章中会涉及到了相关AQS的原理和相关源码的分析,所谓实践是检验真理的唯一标准!接下来就让我们活化一下AQS技术,主要针对于自己动手实现一个AQS同步器。

iOS 面试策略之系统框架-设计模式

很多刚入门的 iOS 开发者经过短期训练,可以熟练的调用各种 API。这时候写一个 tableView、实现一个小动画、独立完成一个交互的功能已经不在话下,但同时 iOS 开发者也就到了技术上的第一个瓶颈——即拥有独立开发一个功能的水平,却似乎并未达到独立开发一个

【高并发】秒杀系统架构解密,不是所有的秒杀都是秒杀(升级版)!!

我再次升级了秒杀系统架构,不是所有的秒杀都是秒杀!!

偷师Kubernetes源码,学会怎么用Go实现调度队列

在动手实现调度队列前,我们应该先来学习参考一下那些优秀的开源项目里是怎么实现调度队列的。Kubernetes的调度器的调度算法的设计里使用了调度队列,在调度队列的实现里,使用了两个不同的队列。

G-P-M 调度模型深度解析之手撸一个高性能 goroutine 池

本文将通过 Go runtime 对 goroutine 的调度分析,帮助大家理解它的机理和发现一些内存和调度的原理和问题,并且基于此提出一种个人的解决方案 — 一个高性能的 Goroutine Pool(协程池)。

Go 并发编程 — 深入浅出 sync.Pool ,围观最全的使用姿势,理解最深刻的原理

Go 并发编程 — 深入浅出 sync.Pool ,sync.Pool 本质用途是增加临时对象的重用率,减少 GC 负担;

并发神器CSP的前世今生

本文转自“雨夜随笔”公众号,欢迎关注。

【高并发】秒杀系统架构解密,不是所有的秒杀都是秒杀(升级版)!!

我再次升级了秒杀系统架构,不是所有的秒杀都是秒杀!!

多线程为了同个资源打起架来了,该如何让他们安定?

30 张带你走进操作系统的「互斥与同步」

剖析Golang Context:从使用场景到源码分析

goroutine,go的并发非常方便,但是这也带来了另外一个问题,当我们进行一个耗时的异步操作时,如何在约定的时间内终止该操作并返回一个自定义的结果?本文先介绍golang context的经典使用场景,然后再剖析其实现原理。

线程池续:你必须要知道的线程池submit()实现原理之FutureTask!

上一篇内容写了Java中线程池的实现原理及源码分析,说好的是实实在在的大满足,想通过一篇文章让大家对线程池有个更透彻的了解!

Java并发编程系列——线程池

Java线程池的使用

【万字图文-原创】 | 学会Java中的线程池,这一篇也许就够了!

关于线程池,你想要知道的都在这里,一次实实在在的大满足!

【数据结构】Java 常用集合类 ConcurrentHashMap(JDK 1.8)

常用的 HashMap 是线程不安全的, Hashtable 是线程安全的。Hashtable 通过在方法上添加 synchronized 保证线程安全,相当于 Hashtable 实例只有一把锁,导致高并发场景下使用效率低。

【高并发】学好并发编程,关键是要理解这三个核心问题

学习高并发编程需要抓住事物的本质!!

我们该如何正确的中断一个线程的执行??

原来中断线程是这样操作的,我又学会了!!

【高并发】ReadWriteLock怎么和缓存扯上关系了?!

在实际工作中,有一种非常普遍的并发场景:那就是读多写少的场景。在这种场景下,为了优化程序的性能,我们经常使用缓存来提高应用的访问性能。因为缓存非常适合使用在读多写少的场景中。而在并发场景中,Java SDK中提供了ReadWriteLock来满足读多写少的场景

冰河整理 深入理解高并发编程 | 内容精选合集

并发编程一直是程序员们比较头疼的,如何编写正确的并发程序相比其他程序来说,是一件比较困难的事情,并发编程中出现的 Bug 往往也是特别诡异的,之所以说并发编程出现的 Bug 比较诡异,是因为在并发编程中,很多时候出现的 Bug 不一定能完美的复现出来。

其他标签