java类的属性 java哪个关键字可以对对象加互斥锁?

java哪个关键字可以对对象加互斥锁?

首先,Java中synchronized可以实现对对象加互斥锁。

java类的属性 java哪个关键字可以对对象加互斥锁?

其次,我们来聊一聊synchronized互斥锁的实现原理。Java虚拟机中,synchronized支持的同步方法和同步语句都是使用monitor来实现的。每个对象都与一个monitor相关联,当一个线程执行到一个monitor监视下的代码块中的第一个指令时,该线程必须在引用的对象上获得一个锁,这个锁是monitor实现的。在HotSpot虚拟机中,monitor是由ObjectMonitor实现,使用C 编写实现,具体代码在HotSpot虚拟机源码ObjectMonitor.hpp文件中。

查看源码会发现,主要的属性有_count(记录该线程获取锁的次数)、_recursions(锁的重入次数)、_owner(指向持有ObjectMonitor对象的线程)、_WaitSet(处于wait状态的线程集合)、_EntryList(处于等待锁block状态的线程队列)。

当并发线程执行synchronized修饰的方法或语句块时,先进入_EntryList中,当某个线程获取到对象的monitor后,把monitor对象中的_owner变量设置为当前线程,同时monitor对象中的计数器_count加1,当前线程获取同步锁成功。

当synchronized修饰的方法或语句块中的线程调用wait()方法时,当前线程将释放持有的monitor对象,monitor对象中的_owner变量赋值为null,同时,monitor对象中的_count值减1,然后当前线程进入_WaitSet集合中等待被唤醒。

java synchronized锁对象,当对象引用是null的时候,锁的是什么?

谢邀!

Java语言规范中明确指出如果锁住的对象是null,则会NullPointerException,规范内容如下:

The type of Expression must be a reference type, or a compile-time error occurs. A synchronized statement is executed by first evaluating the Expression. Then: If evaluation of the Expression completes abruptly for some reason, then the synchronized statement completes abruptly for the same reason. Otherwise, if the value of the Expression is null, a NullPointerException is thrown.

标签:

最新文章

  1. 电竞大学专业工资大概多少(“打游戏”也能上大学,电子竞技员是年薪百万吗?)2025-03-22
  2. 电脑初始化socket环境失败怎么办 c语言管理系统怎么联网?2025-03-16
  3. 微信中查看附近的人怎么查看 微信怎么搜索异地附近的人?2025-03-15
  4. 全自动洗衣机漂洗怎么取消(全自动洗衣机漂洗怎么办?)2025-03-22
  5. 怎么建立网站 怎么样做好网站的 SEO 优化?2025-03-29
  6. seo是什么意思 怎么样做好网站的 SEO 优化?2025-03-21
  7. 如何在ME软件中开启免打扰功能2025-03-06
  8. html做下拉菜单栏 下拉菜单怎么制作?2025-03-19
  9. 京东预约抢购苹果根本抢不到 京东预约抢购技巧苹果?2025-03-17
  10. 跑步机品牌排名(谁来说下排名前十的跑步机有哪些?)2025-03-25
  11. 更改powerpoint视图选择哪个功能 PowerPoint 视图选择2025-03-11
  12. 成都到上海高铁(成都到上海高铁途经哪些站?)2025-03-25
  13. 如何使用WPS制作内阴影美术字2025-03-07
  14. OPPO R9m手机支持电信卡吗?2025-03-07
  15. Excel计算年份天数的简便方法2025-03-09
  16. 拼多多参加618 一直要求降价2025-03-15
  17. 华为手机休眠没有永不选项咋关呀 华为手机休眠设置2025-03-16
  18. ps切换背景色 有哪些软件可以修改照片里的背景?2025-04-01
  19. 苏州园林课件 苏州园林说明文赏析?2025-03-24
  20. 耐酸雨真石漆(真石漆表面贴什么墙纸能贴住?)2025-03-17
  21. 鸿蒙系统怎样设置双击息屏 鸿蒙系统双击息屏的设置教程2025-03-09
  22. 华为nova 8铃声怎么换不了了 华为nova8微信提示音怎么设置?2025-03-12
  23. 如何查域名的地址 ch域名是什么域名?2025-03-28
  24. 腾达路由器有信号无网络怎么弄 腾达路由器没有信号怎么办?2025-03-15
  25. 手机能用otg线外接无线网卡吗 手机OTG线连接无线网卡是否可行2025-03-16
  26. 地下城与鬼剑士手游官网 DNF官方发公告,更新最新版本后穿戴幻化武器会导致角色伤害会大大下降,如何评价?2025-03-31
  27. win7电脑下面的任务栏不见了 电脑系统桌面任务栏点击没反应如何处理?2025-03-15
  28. 新探秘启航教育专属福利,轻松查看步骤揭秘2025-03-07
  29. 如何轻松关闭vivo手机的云服务通知2025-03-07
  30. 美团运动品类排名 美团骑手运力不足是什么意思?2025-03-09
优质自媒体
优质自媒体 微信号:优质自媒体 扫描二维码关注公众号
优质自媒体

小编推荐

  1. 1 制作一个音乐网站 好听的音乐网站有哪些?

    好听的音乐网站有哪些?虾,酷狗,银月台http://www.hao123.com/music.htm第1章开发概述1.1:项目介绍1.2开发环境及需求1.3 ASP及相关技术介绍1.4 ASP与CGI的比较第2章需求分析2.1:系统调研2.

  2. 2 网站建设 怎样建一个网站?普通网站的建设费用和维护费用是多少?

    怎样建一个网站?普通网站的建设费用和维护费用是多少?域名基本免费,只需要一个服务器。以阿里巴巴云和腾讯云为例。最便宜的网站服务器价格也不贵,一年近500元,作为公司发布信息当然可以。同时支持1000人,基本够用。网站建设代码基本模板,有相关

  3. 3 c程序调用另一个c程序 怎样在多个cpp文件中引入同一个全局变量?

    怎样在多个cpp文件中引入同一个全局变量?c语言,不同的函数中可以使用相同名字的变量吗?函数:1。C语言不能在同一语言中定义具有相同名称的函数。C文件,即使是重载的,因为C语言不支持重载,所以链接时会报错。2通常,同名函数不能在不同的函数中

  4. 4 电商设计网站 有电商商品详情页面的免费模板素材网站推荐吗?

    有电商商品详情页面的免费模板素材网站推荐吗?您可以尝试多重搜索、视觉狩猎、pixabay、pexels等。pexels网站的材料足够清晰,格式非常合适。最重要的是,它没有版权纠纷。Pixabay有很多免费的视频资料。VisualHunt最大

  5. 5 java一般要学几年 Java入门到精通需要多长时间?

    Java入门到精通需要多长时间?我的学生嘲笑“Java从入门到放弃”、“Java从入门到失败”、“Java从入门到坟墓”,这在一定程度上反映了编程语言的难度。从一开始到精通,常常有一种说法是这本书很吸引眼球。我认为java学习只是从头开始。

  6. 6 表格怎么去掉不要的线 DW网页制作问题:怎样去掉表格线?

    DW网页制作问题:怎样去掉表格线?怎么删除Word表格外面的边框,就是左右两条线?在职场,大家都会用这个词。在word表中,可以删除表中的某些区域。有两种删除左右行的方法选择我们的表。如果是2007以上的版本,则会在顶部显示一个布局选项,您

  7. 7 买阿里云域名有什么用 为什么有人说建设网站必须去购买域名呢?

    为什么有人说建设网站必须去购买域名呢?如果它只是一个静态博客网站,你不需要购买域名。您可以使用一些提供博客服务的网站的辅助域名。域名只能是主域名下的次域名,域名不是可选的。如果您想部署自己的服务,最好购买域名。你为什么这么说?其实没有域名,

  8. 8 poi获取excel行数 如何使用java读取excel?

    如何使用java读取excel?这里是一个简单的介绍。有两种方法,一种是基于JXL读取Excel,另一种是基于poi读取Excel。这两种方法非常简单,代码量也不多。下面我就来介绍一下实现过程,实验环境win10jdk1.8eclipse,

  9. 9 app套壳是什么意思 苹果12要套壳吗?

    苹果12要套壳吗?苹果12需要外壳吗是的,不管手机有多硬,都无法避免来自环境的各种摩擦。带外壳,可避免手机磨损,保护手机摄像头

  10. 10 微信创建公众号 微信公众号需要域名吗?

    官方帐户不需要域名。但是,如果开设了官方账户,则可能需要官方账户。它应该是微信公众号的网址必须是注册域名,否则就无法访问。去爱艾米看看。微信公众号需要域名吗?哈哈,很高兴见到你。谢谢你的邀请!没钱,嘻嘻!哈哈,谢谢你。微信公众号接入的URL

Copyright 2025 优质自媒体,让大家了解更多图文资讯!百度地图 360地图