日期:2014-05-20  浏览次数:20658 次

关于设置lock的一个问题
看到java有两种设置lock的方法, 1是标识synchornized调用蕴含的lock,
或者是申明一个lock,然后
try {mylock.lock(); 

读写资源

}finally{mylock.unlock();}
但是如果读写资源与设置lock不同步, 比如我在设置lock时候只能是对资源的index进行设置, 
然后在别的地方真正读写资源。
这样做行不行?有没有别的好方法??
申明一个
void setlock(){ mylock.lock()}
void releaselock(){mylock.unlock()}
这样调用函数就可以资源并行控制可通过调用这些函数进行。

谢谢诸位!!

------解决方案--------------------
没太看懂你的意思, jdk 1.5以后有一个 reenterlock 

你可以参考看看。

在一个线程里,你获得了锁,其它运行的代码会自动拿到那个锁。

但是要小心你需要多个锁的时候,产生死锁问题
------解决方案--------------------
万一方法内出现异常,去哪里释放锁资源!