发布了 18 篇内容
共 56010字, 被阅读 1949次
获得了 3 次赞同
获得了 0次喜欢, 获得了 3 次收藏
参与了 1 次互动
互动包含发布评论、点赞评论、参与投票等
![并发王者课-铂金05:致胜良器-无处不在的“阻塞队列”究竟是何面目](https://static001.geekbang.org/infoq/6c/6c4fd925340c61c6f0cb766e3271b979.png?x-oss-process=image/resize,w_416,h_234)
并发王者课 - 铂金 05:致胜良器 - 无处不在的“阻塞队列”究竟是何面目
在线程的同步中,阻塞队列是一个绕不过去的话题,它是同步器底层的关键。所以,我们在本文中将为你介绍阻塞队列的基本原理,以了解它的工作机制和它在 Java 中的实现。本文稍微有点长,建议先了解大纲再细看章节。
![并发王者课-铂金4:令行禁止-为何说信号量是线程间的同步利器](https://static001.geekbang.org/infoq/ff/ff6b29bf76bca384b90e8142e4da694b.png?x-oss-process=image/resize,w_416,h_234)
并发王者课 - 铂金 4:令行禁止 - 为何说信号量是线程间的同步利器
欢迎来到《并发王者课》,本文是该系列文章中的第 17 篇。 在并发编程中,信号量是线程同步的重要工具。在本文中,我将带你认识信号量的概念、用法、种类以及 Java 中的信号量。
![并发王者课-铂金3:一劳永逸-如何理解锁的多次可重入问题](https://static001.geekbang.org/infoq/5d/5d22b48debfa09c9ea1a06419a5534da.png?x-oss-process=image/resize,w_416,h_234)
并发王者课 - 铂金 3:一劳永逸 - 如何理解锁的多次可重入问题
在前面的文章《铂金 1:探本溯源 - 为何说 Lock 接口是 Java 中锁的基础》中,我们提到了锁的可重入问题,并作了简单介绍。鉴于锁的可重入是一个重要概念,所以本文把拿出来做一次单独讲解,以帮助你彻底理解它。
![并发王者课-铂金2:豁然开朗-“晦涩难懂”的ReadWriteLock竟如此妙不可言](https://static001.geekbang.org/infoq/d8/d86c568bcc6423a34a4e9d50518ba544.png?x-oss-process=image/resize,w_416,h_234)
并发王者课 - 铂金 2:豁然开朗 -“晦涩难懂”的 ReadWriteLock 竟如此妙不可言
欢迎来到《并发王者课》,本文是该系列文章中的第 15 篇。 在上篇文章中,我们介绍了 Java 中锁的基础 Lock 接口。在本文中,我们将介绍 Java 中锁的另外一个重要的基本型接口,即 ReadWriteLock 接口。
![并发王者课-铂金1:探本溯源-为何说Lock接口是Java中锁的基础](https://static001.geekbang.org/infoq/24/24203b1fe947161068f9c0f98d82e11d.png?x-oss-process=image/resize,w_416,h_234)
并发王者课 - 铂金 1:探本溯源 - 为何说 Lock 接口是 Java 中锁的基础
在黄金系列中,我们介绍了并发中一些问题,比如死锁、活锁、线程饥饿等问题。在并发编程中,这些问题无疑都是需要解决的。所以,在铂金系列文章中,我们会从并发中的问题出发,探索 Java 所提供的锁的能力以及它们是如何解决这些问题的。
![并发王者课-黄金3:雨露均沾-不要让你的线程在竞争中被“饿死”](https://static001.geekbang.org/infoq/85/85b46f80d99d44ef6a10d6fa98854caa.png?x-oss-process=image/resize,w_416,h_234)
并发王者课 - 黄金 3:雨露均沾 - 不要让你的线程在竞争中被“饿死”
在上篇文章中,我们介绍了避免死锁的几种策略。虽然死锁臭名昭著,然而在并发编程中,除了死锁之外,还有一些同样重要的线程活跃性问题值得关注。它们的知名度不高,但破坏性极强,本文将介绍的正是其中的线程饥饿和活锁问题。
![并发王者课-黄金2:行稳致远-如何让你的线程免于死锁](https://static001.geekbang.org/infoq/4d/4d25f3daad3dd46ccfa37c0b5bf31498.png?x-oss-process=image/resize,w_416,h_234)
并发王者课 - 黄金 2:行稳致远 - 如何让你的线程免于死锁
在上篇文章中,我们介绍了避免死锁的几种策略。虽然死锁臭名昭著,然而在并发编程中,除了死锁之外,还有一些同样重要的线程活跃性问题值得关注。它们的知名度不高,但破坏性极强,本文将介绍的正是其中的线程饥饿和活锁问题。
![并发王者课-黄金1:两败俱伤-互不相让的线程如何导致了死锁僵局](https://static001.geekbang.org/infoq/08/08df57254bbd19307c6e2bf8772b2d03.png?x-oss-process=image/resize,w_416,h_234)
并发王者课 - 黄金 1:两败俱伤 - 互不相让的线程如何导致了死锁僵局
欢迎来到《并发王者课》,本文是该系列文章中的第 11 篇。 在本篇文章中,我将为你介绍多线程中的经典问题 - 死锁,以及死锁的产生原因、处理和方式预防措施。
![并发王者课-青铜10:千锤百炼-如何解决生产者与消费者经典问题](https://static001.geekbang.org/infoq/ed/edf2ba5917784dd8ea7dc9b8c8a52a35.png?x-oss-process=image/resize,w_416,h_234)
并发王者课 - 青铜 10:千锤百炼 - 如何解决生产者与消费者经典问题
欢迎来到《并发王者课》,本文是该系列文章中的第 10 篇。 在本篇文章中,我将为你介绍并发中的经典问题 - 生产者与消费者问题,并基于前面系列文章的知识点,通过 wait、notify 实现这一问题的简版方案。
![并发王者课-青铜9:防患未然-如何处理线程中的异常](https://static001.geekbang.org/infoq/57/57960db03e63e60a7eb41e5938ba1d6b.png?x-oss-process=image/resize,w_416,h_234)
并发王者课 - 青铜 9:防患未然 - 如何处理线程中的异常
欢迎来到《并发王者课》,本文是该系列文章中的第 9 篇。 在本篇文章中,我将为你介绍线程中异常的处理方式以及 uncaughtExceptionHandler 用法。
![并发王者课-青铜8:分工协作-从本质认知线程的状态和动作方法](https://static001.geekbang.org/infoq/79/79b7a7eb917237f91dd3b8c0ea4d9909.png?x-oss-process=image/resize,w_416,h_234)
并发王者课 - 青铜 8:分工协作 - 从本质认知线程的状态和动作方法
欢迎来到《并发王者课》,本文是该系列文章中的第 8 篇。 在本篇文章中,我将从多线程的本质出发,为你介绍线程相关的状态和它们的变迁方式,并帮助你掌握这块知识点。
![并发王者课-青铜7:顺藤摸瓜-如何从synchronized中的锁认识Monitor](https://static001.geekbang.org/infoq/8a/8a309e096cdd7d217728f8094f6ca3a0.png?x-oss-process=image/resize,w_416,h_234)
并发王者课 - 青铜 7:顺藤摸瓜 - 如何从 synchronized 中的锁认识 Monitor
在前面的文章中,我们已经体验过 synchronized 的用法,并对锁的概念和原理做了简单的介绍。然而,你可能已经察觉到,有一个概念似乎总是和 synchronized、锁这两个概念如影相随,很多人也比较喜欢问它们之间的区别,这个概念就是 Monitor,也叫监视器。
最新评论
并发王者课 - 铂金 05:致胜良器 - 无处不在的“阻塞队列”究竟是何面目