java - 多线程请求时同步锁授予顺序?

标签 java multithreading

当一个线程已经获取锁时,多个线程尝试获取同步锁。 我的理解是,锁将按照获取锁请求的顺序给出。

但根据 O'Reilly 的书,将给出最适合平台的 Java 线程锁。这是非常抽象的说法。我认为这里的平台主要指的是操作系统。 我的问题是,JVM 决定什么最适合平台的标准是什么,以及开发人员如何考虑它 正在编程?

更新:-我知道我可以使用具有公平性参数的 Lock 对象。但只是想知道同步锁是如何工作的?

最佳答案

同步获取遵循非公平锁定策略。也就是说,在阻塞时首先进入的线程可能不是最先获取的。如果您想要公平锁,请使用new ReentrantLock(true)

关于java - 多线程请求时同步锁授予顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22101371/

相关文章:

c++ - Gtkmm : How to update UI from another thread? 连续

multithreading - 异步任务超时?

c# - 锁定未处理的异常处理程序是否安全?

java - XML 文件位于内存中,而不是作为磁盘上的文件

java - 为什么 boolean 值在某些情况下可以转换为字符串,而在其他情况下则不能?

java - 如何在 Swagger 中更改成功操作的响应状态代码?

.net - 在不使用来自另一个线程的 Invoke/BeginInvoke 的情况下读取表单控件值(但不更改它)是否是线程安全的

java - 如果手机上未安装某些应用程序,请禁用菜单按钮?

java - 从应用程序中请求 java 堆转储(核心转储)

c# - 有多个同时写入器(没有读取器)到一个文件。是否有可能在 .NET 中以高效的方式完成?