【发布时间】:2014-01-16 23:28:36
【问题描述】:
Java 中的所有对象都有内在锁,这些锁用于同步。这个概念可以防止对象同时被不同的线程操作,或者帮助控制特定代码块的执行。
如果锁本身被争用会发生什么 - 即 2 个线程在精确的微秒内请求锁。
谁得到它,它是如何解决的?
【问题讨论】:
-
你是从哪里得到
intrinsic locks这个概念的? -
如果 2 个线程想要在精确的“纳秒”内获得相同的锁,那么首先请求/请求它的线程将获得它......前提是其他一些线程没有持有它......跨度>
-
@Craig 在 Oracle 站点本身。如果您不熟悉这个概念,请在此处阅读:docs.oracle.com/javase/tutorial/essential/concurrency/…
-
这里有点宽泛,完整的答案将是关于并发的书中的一章。简短的回答是没有“完全相同的时间”——它是在 CPU 支持下完成的原子操作
-
我对这个主题很熟悉,只是从未听说过它(主要在 C# 中使用同步)
标签: java multithreading locking