在前面的文章《青铜4:synchronized用法初体验》中,我们已经提到锁的概念,并指出synchronized是锁机制的一种实现。可是,这么说未免太过抽象,你可能无法直观地理解锁究竟是什么?所以,本文会粗略地介绍synchronized背后的一些基本原理,让你对Java中的锁有个粗略但直观 ...
在前面的文章中,我们已经体验过synchronized的用法,并对锁的概念和原理做了简单的介绍。然而,你可能已经察觉到,有一个概念似乎总是和synchronized 锁这两个概念如影相随,很多人也比较喜欢问它们之间的区别,这个概念就是Monitor,也叫监视器。 所以,在讲解完synchronized 锁之后,文本将为你讲解Monitor,揭示它们之间那些公开的秘密,希望你不再迷惑。 首先,你要明 ...
2021-05-28 10:29 0 282 推荐指数:
在前面的文章《青铜4:synchronized用法初体验》中,我们已经提到锁的概念,并指出synchronized是锁机制的一种实现。可是,这么说未免太过抽象,你可能无法直观地理解锁究竟是什么?所以,本文会粗略地介绍synchronized背后的一些基本原理,让你对Java中的锁有个粗略但直观 ...
在前面的文章《双刃剑-理解多线程带来的安全问题》中,我们提到了多线程情况下存在的线程安全问题。本文将以这个问题为背景,介绍如何通过使用synchronized关键字解这一问题。当然,在青铜阶段,我们仍不会过多地描述其背后的原理,重点还是先体验并理解它的用法。 一、从场景中体 ...
欢迎来到《并发王者课》,本文是该系列文章中的第9篇。 在本篇文章中,我将为你介绍线程中异常的处理方式以及uncaughtExceptionHandler用法。 一、新线程中的异常去哪了 应用程序在执行过程中,难免会出现各种意外错误,如果我们没有对错误进行捕获处理,会直接影响应用的运行 ...
欢迎来到《并发王者课》,本文是该系列文章中的第8篇。 在本篇文章中,我将从多线程的本质出发,为你介绍线程相关的状态和它们的变迁方式,并帮助你掌握这块知识点。 一、多线程的本质是分工协作 如果你是王者的玩家,那么你一定知道王者中的众多英雄分为主要分为几类,比如法师、战士、坦克、辅助等等。一些 ...
欢迎来到《并发王者课》,本文是该系列文章中的第14篇。 在黄金系列中,我们介绍了并发中一些问题,比如死锁、活锁、线程饥饿等问题。在并发编程中,这些问题无疑都是需要解决的。所以,在铂金系列文章中,我们会从并发中的问题出发,探索Java所提供的锁的能力以及它们是如何解决这些问题的。 作为铂金系列 ...
monitor(监视器/管程) java对象分三部分, 对象头 数据实例 填充 对象头分为 普通对象- markword(32bit)/klass word(32bit)(指向对应的class对象) 数组对象-多一个array length(32bit)数组 ...
欢迎来到《并发王者课》,本文是该系列文章中的第10篇。 在本篇文章中,我将为你介绍并发中的经典问题-生产者与消费者问题,并基于前面系列文章的知识点,通过wait、notify实现这一问题的简版方案。 一、生产者与消费者问题 生产者消费者问题(Producer-consumer problem ...
引言 最近一段时间,实验室已经倾巢出动找实习了,博主也凑合了一把,结果有悲有喜,BAT理所应当的跪了,也收到了其他的offer,总的感受是有必要夯实基础啊。 言归正传,最近在看到java多线程的时候,发现线程很多都是用了synchronized(同步锁)的关键字 ...