关于设置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
你可以参考看看。
在一个线程里,你获得了锁,其它运行的代码会自动拿到那个锁。
但是要小心你需要多个锁的时候,产生死锁问题
------解决方案--------------------万一方法内出现异常,去哪里释放锁资源!