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