gpt4 book ai didi

java - 如果锁本身被争用会怎样?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:50:17 25 4
gpt4 key购买 nike

Java 中的所有对象都有内部锁,这些锁用于同步。这个概念可以防止对象同时被不同的线程操作,或者有助于控制特定代码块的执行。

如果锁本身发生争用,会发生什么情况 - 即 2 个线程在精确的微秒请求锁。

谁得到它,它是如何解决的?

最佳答案

What will happen if the locks themselves get contended upon - i.e. 2 threads asking for the lock at the exact microsecond.

一个线程将获得锁,另一个线程将被阻塞,直到第一个线程释放它。

(旁白:其他一些答案断言在 Java 中没有“同时”这样的东西。他们错了!有这样的东西!如果 JVM 使用两个或更多多核系统的内核,那么不同内核上的两个线程可以完全相同的硬件时钟周期内请求相同的对象锁。显然,只有一个线程会得到它,但这是一个不同的问题。)

Who gets it, and how does it get resolved?

未指定哪个线程将获得锁。

它(通常)由操作系统的线程调度程序解决...使用任何使用的机制。 JVM 行为的这一方面(显然)是特定于平台的。

如果您真的非常想弄清楚到底发生了什么,可以免费获得 OpenJDK 和 Linux 的源代码。但坦率地说,您不需要知道

关于java - 如果锁本身被争用会怎样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20833433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com