我扫描了声明中的所有 java文档synchronized
,以寻找这个问题的答案,但没有运气。
假设我有thread1
, thread2
,thread3
试图同时运行以下代码。
synchronized(lockObj) {
doSomething();
}
假设thread1
先到doSomething()
,thread2
然后thread3
它将阻塞并等待synchronized
语句。
问题
- 释放锁时
thread1
,哪个线程会先被释放? - 释放锁时适用的一般顺序规则是什么?