作者dreamvic (梦游夏威夷)
看板java
标题[问题] 关於synchronized
时间Wed Feb 10 23:03:22 2010
最近写一个程式跟SQL有关,一直对database做insert跟delete的动作,
在跑了很久一段时间後,有时会发生 Unable to close due to unfinalised statements
trace了一下 发现因为 以下的method 在同步化时 unlock 导致
onAllReferencesReleased() call dbclose() 发生了 exception。
-------------------------------------------------------
private Object mLock = new Object();
.....
public void releaseReference() {
synchronized(mLock) {
mReferenceCount--;
if (mReferenceCount == 0) {
onAllReferencesReleased();
}
}
}
想请问的是 有没有办法知道是 那一个 resource 进入了同步化
本来应该一直要lock住,但最後却 unlock 导致 程式 crash。
谢谢^^
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.44.12.73
1F:→ pico2k:请小心求证,不要用"你觉得"或是用"感觉"... 02/10 23:31
※ 编辑: dreamvic 来自: 114.44.12.73 (02/11 00:13)