摘要: 欢迎来到《并发王者课》,本文是该系列文章中的第12篇。 在上篇文章中,我们介绍了死锁的概念及其原因,本文将为你介绍的是几种常见的死锁预防策略。 阅读全文
posted @ 2021-06-12 10:02 秦二爷 阅读(188) 评论(1) 推荐(0) 编辑
摘要: 欢迎来到《并发王者课》,本文是该系列文章中的第11篇。 在本篇文章中,我将为你介绍多线程中的经典问题-死锁,以及死锁的产生原因、处理和方式预防措施。 阅读全文
posted @ 2021-06-10 21:36 秦二爷 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 欢迎来到《并发王者课》,本文是该系列文章中的第10篇。 在本篇文章中,我将为你介绍并发中的经典问题-生产者与消费者问题,并基于前面系列文章的知识点,通过wait、notify实现这一问题的简版方案。 阅读全文
posted @ 2021-06-10 12:23 秦二爷 阅读(427) 评论(0) 推荐(0) 编辑
摘要: 欢迎来到《并发王者课》,本文是该系列文章中的第9篇。 在本篇文章中,我将为你介绍线程中异常的处理方式以及uncaughtExceptionHandler用法。 阅读全文
posted @ 2021-06-09 19:29 秦二爷 阅读(250) 评论(0) 推荐(1) 编辑
摘要: 欢迎来到《王者并发课》,本文是该系列文章中的第8篇。 在本篇文章中,我将从多线程的本质出发,为你介绍线程相关的状态和它们的变迁方式,并帮助你掌握这块知识点。 阅读全文
posted @ 2021-05-31 12:39 秦二爷 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 在前面的文章中,我们已经体验过synchronized的用法,并对锁的概念和原理做了简单的介绍。然而,你可能已经察觉到,有一个概念似乎总是和synchronized、锁这两个概念如影相随,很多人也比较喜欢问它们之间的区别,这个概念就是Monitor,也叫监视器。 阅读全文
posted @ 2021-05-28 10:29 秦二爷 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 在前面的文章《一探究竟-如何从synchronized理解Java对象头中的锁》中,我们介绍并体验了JOL工具。虽然JOL很赞,但它的输出对我们不是很友好,如果不借助工具,我们很难直观理解其中的含义。 下面这段代码是对JOL输出的翻译,建议你收藏。代码非我原创,文末已经注明出处。 import or 阅读全文
posted @ 2021-05-27 10:29 秦二爷 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 本文将分两个部分,首先你要从Mark Word中认识锁,因为对象锁的信息存在于Mark Word中,其次通过JOL工具实际体验Mark Word的变化。 阅读全文
posted @ 2021-05-27 10:28 秦二爷 阅读(292) 评论(0) 推荐(1) 编辑
摘要: 在前面的文章《双刃剑-理解多线程带来的安全问题》中,我们提到了多线程情况下存在的线程安全问题。本文将以这个问题为背景,介绍如何通过使用synchronized关键字解这一问题。 阅读全文
posted @ 2021-05-25 18:19 秦二爷 阅读(378) 评论(2) 推荐(2) 编辑
摘要: 在前面的两篇文章中,我们体验了线程的创建,并从OS进程层面认识了线程。现在,我们已经知晓多线程在解决一些场景问题时有特效。 然而,不知你可曾想过,多线程虽然效率很高,但是它却有着你无法回避的并发问题。举个王者中常见的场景,双方10人同时进攻主宰,最后击败主宰的玩家才是真正的赢家,而且只能有一位。所以 阅读全文
posted @ 2021-05-24 17:30 秦二爷 阅读(128) 评论(0) 推荐(0) 编辑