摘要:欢迎来到《并发王者课》,本文是该系列文章中的第17篇。 在并发编程中,信号量是线程同步的重要工具。在本文中,我将带你认识信号量的概念、用法、种类以及Java中的信号量。 信号量(Semaphore) 是线程间的同步结构,主要用于多线程协作时的信号传递,以及对共享资源的保护、防止竞态的发生等。信号量这一概念听起来比较抽象,然而读完本文你会发现它竟然也是如此通俗易懂且挺有用。 阅读全文
posted @ 2021-06-22 10:17 秦二爷 阅读(109) 评论(0) 推荐(0) 编辑
摘要:欢迎来到《并发王者课》,本文是该系列文章中的第16篇。 在前面的文章中,我们提到了锁的可重入问题,并作了简单介绍。鉴于锁的可重入是一个重要概念,所以本文把拿出来做一次单独讲解,以帮助你彻底理解它。 阅读全文
posted @ 2021-06-21 10:18 秦二爷 阅读(196) 评论(0) 推荐(0) 编辑
摘要:欢迎来到《并发王者课》,本文是该系列文章中的第15篇。 在上篇文章中,我们介绍了Java中锁的基础Lock接口。在本文中,我们将介绍Java中锁的另外一个重要的基本型接口,即ReadWriteLock接口。 在探索Java中的并发时,ReadWriteLock无疑是重要的,然而理解它却并不容易。如果你此前曾经检索资料,应该会发现大部分的文章对它的描述都比较晦涩难懂,或连篇累牍的源码陈列,或隔靴搔痒的三言两语,既说不到重点,也说不清来龙去脉。 阅读全文
posted @ 2021-06-18 09:58 秦二爷 阅读(110) 评论(0) 推荐(0) 编辑
摘要:在黄金系列中,我们介绍了并发中一些问题,比如死锁、活锁、线程饥饿等问题。在并发编程中,这些问题无疑都是需要解决的。所以,在铂金系列文章中,我们会从并发中的问题出发,探索Java所提供的锁的能力以及它们是如何解决这些问题的。 作为铂金系列文章的第一篇,我们将从Lock接口开始介绍,因为它是Java中锁的基础,也是并发能力的基础。 阅读全文
posted @ 2021-06-16 10:10 秦二爷 阅读(160) 评论(2) 推荐(0) 编辑
摘要:欢迎来到《并发王者课》,本文是该系列文章中的第13篇。 在上篇文章中,我们介绍了避免死锁的几种策略。虽然死锁臭名昭著,然而在并发编程中,除了死锁之外,还有一些同样重要的线程活跃性问题值得关注。它们的知名度不高,但破坏性极强,本文将介绍的正是其中的线程饥饿和活锁问题。 阅读全文
posted @ 2021-06-13 09:33 秦二爷 阅读(130) 评论(0) 推荐(0) 编辑
摘要:欢迎来到《并发王者课》,本文是该系列文章中的第12篇。 在上篇文章中,我们介绍了死锁的概念及其原因,本文将为你介绍的是几种常见的死锁预防策略。 阅读全文
posted @ 2021-06-12 10:02 秦二爷 阅读(90) 评论(1) 推荐(0) 编辑
摘要:欢迎来到《并发王者课》,本文是该系列文章中的第11篇。 在本篇文章中,我将为你介绍多线程中的经典问题-死锁,以及死锁的产生原因、处理和方式预防措施。 阅读全文
posted @ 2021-06-10 21:36 秦二爷 阅读(107) 评论(0) 推荐(0) 编辑
摘要:欢迎来到《并发王者课》,本文是该系列文章中的第10篇。 在本篇文章中,我将为你介绍并发中的经典问题-生产者与消费者问题,并基于前面系列文章的知识点,通过wait、notify实现这一问题的简版方案。 阅读全文
posted @ 2021-06-10 12:23 秦二爷 阅读(207) 评论(0) 推荐(0) 编辑
摘要:欢迎来到《并发王者课》,本文是该系列文章中的第9篇。 在本篇文章中,我将为你介绍线程中异常的处理方式以及uncaughtExceptionHandler用法。 阅读全文
posted @ 2021-06-09 19:29 秦二爷 阅读(114) 评论(0) 推荐(1) 编辑
摘要:欢迎来到《王者并发课》,本文是该系列文章中的第8篇。 在本篇文章中,我将从多线程的本质出发,为你介绍线程相关的状态和它们的变迁方式,并帮助你掌握这块知识点。 阅读全文
posted @ 2021-05-31 12:39 秦二爷 阅读(151) 评论(0) 推荐(0) 编辑