iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >详谈锁和监视器之间的区别_Java并发
  • 918
分享到

详谈锁和监视器之间的区别_Java并发

java监视器 2023-05-31 11:05:09 918人浏览 独家记忆
摘要

在面试中你可能遇到过这样的问题:锁(lock)和监视器(monitor)有什么区别?嗯,要回答这个问题,你必须深入理解Java的多线程底层是如何工作的。简短的答案是,锁为实现监视器提供必要的支持。详细答案如下。锁(lock)逻辑上锁是对象内

面试中你可能遇到过这样的问题:(lock)和监视器(monitor)有什么区别?

嗯,要回答这个问题,你必须深入理解Java的多线程底层是如何工作的。

简短的答案是,锁为实现监视器提供必要的支持。详细答案如下。

锁(lock)

逻辑上锁是对象内存堆中头部的一部分数据。JVM中的每个对象都有一个锁(或互斥锁),任何程序都可以使用它来协调对对象的多线程访问。如果任何线程想要访问该对象的实例变量,那么线程必须拥有该对象的锁(在锁内存区域设置一些标志)。所有其他的线程试图访问该对象的变量必须等到拥有该对象的锁有的线程释放锁(改变标记)。

一旦线程拥有一个锁,它可以多次请求相同的锁,但是在其他线程能够使用这个对象之前必须释放相同数量的锁。如果一个线程请求一个对象的锁三次,如果别的线程想拥有该对象的锁,那么之前线程需要 “释放”三次锁。

Java中显示锁的使用语法如下:

…private Lock bankLock = new ReentrantLock();… public double getTotalBalance()  {   bankLock.lock();   try   {     double sum = 0;     for (double a : accounts)      sum += a;     return sum;   }   finally   {     bankLock.unlock();   }  }

--结束END--

本文标题: 详谈锁和监视器之间的区别_Java并发

本文链接: https://www.lsjlt.com/news/225437.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 详谈锁和监视器之间的区别_Java并发
    在面试中你可能遇到过这样的问题:锁(lock)和监视器(monitor)有什么区别?嗯,要回答这个问题,你必须深入理解Java的多线程底层是如何工作的。简短的答案是,锁为实现监视器提供必要的支持。详细答案如下。锁(lock)逻辑上锁是对象内...
    99+
    2023-05-31
    java 监视器
  • 浅谈StringEntity 和 UrlEncodedFormEntity之间的区别
    StringEntity 和 UrlEncodedFormEntity的区别 一、UrlEncodedFormEntity //设置请求方式与参数 URI uri = new U...
    99+
    2024-04-02
  • 详谈StringUtils3之StringUtils.isEmpty()和StringUtils.isB的区别
    目录#isEmpty系列StringUtils.isEmpty()StringUtils.isNotEmpty()StringUtils.isAnyEmpty()StringUtil...
    99+
    2024-04-02
  • 浅谈C结构和C++结构之间的区别
    今天我们来看一下:C结构和C++结构之间,到底有什么不一样地方! 在C++中,struct和class完全相同,除了struct默认为公共可见性和class默认为私有可见性。&nbs...
    99+
    2024-04-02
  • 探讨Go语言并发和并行之间的区别及联系
    Go语言是一种由Google开发的编程语言,以其并发编程特性而闻名。在Go语言中,有两个重要的概念——并发和并行。虽然这两个概念看起来类似,但它们之间有着微妙的区别和联系。本文将探讨G...
    99+
    2024-03-12
    go语言 并发 并行
  • ES6中export default和export之间的区别详解
    🎈 export default 和 export 有什么区别: export 、export default,都属于ES6里面的语法 1. export与export defaul...
    99+
    2023-05-17
    es6 export default es6 export
  • vps和云服务器之间的区别
    这篇文章主要讲解了“vps和云服务器之间的区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vps和云服务器之间的区别”吧! 首先来说说云服务器和VPS是什么东西吧。云服务器就是一...
    99+
    2023-06-07
  • 解释 SQL 中表、视图和同义词之间的区别
    让我们了解一下结构化查询语言 (SQL) 中的表、视图和同义词是什么。表、视图和同义词表是数据的存储库,其中在表中它是一个物理实体。表物理上驻留在数据库中。视图不是数据库物理表示的一部分。它经过预编译,因此数据检索速度更快,并且还提供安全的...
    99+
    2023-10-22
  • Tomcat和Web服务器之间的区别是什么
    Tomcat是一个开源的Java Servlet容器,也是一个Web服务器,它专门用来运行Java的Server Pages和Ser...
    99+
    2024-04-24
    Tomcat 服务器
  • 详解CSS伪类和伪元素的用法以及它们之间的区别
    CSS伪类和伪元素的区别及用法详解伪类和伪元素是在CSS中经常使用的概念,它们可以帮助我们选择和样式化HTML中的特定元素。虽然它们的名字相似,但它们有不同的用法和功能。在本文中,我们将详细解释CSS伪类和伪元素的区别,并给出具体的代码示例...
    99+
    2023-12-23
    CSS 伪类 伪元素
  • 香港服务器和国内服务器之间的区别是什么
    香港服务器和国内服务器之间的区别是:1、香港服务器不需要备案,国内服务器必须要备案;2、访问速度不同,国内服务器访问海外网站的速度比香港服务器要慢;3、资源价格不同,香港服务器采用的是国际出口带宽,价格比国内服务器要贵;4、服务器性能配置不...
    99+
    2024-04-02
  • 高防服务器和硬防服务器之间的区别有哪些
    高防服务器中的高防和硬防的区别:1.高防服务器则是指服务器本身具备了防御能力,专为单个客户提供防御能力,主要工作是负责流量清洗及确保正常运营。2.硬防服务器指提供硬件防御的服务器,它的安全性能跟稳定性会更好但价格会比高防服务器高一些。具体内...
    99+
    2024-04-02
  • 你知道吗?Python并发、API和容器之间有着神秘的联系!
    Python作为一种高级编程语言,已经成为了许多开发者和数据科学家的首选工具。Python的优点在于它的可读性、易用性和强大的库支持,这些都让开发过程变得更加高效和简单。但是,Python的并发、API和容器之间的联系却很少被人提及。本文将...
    99+
    2023-11-15
    并发 api 容器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作