JGroup的分布式锁

JGroup提供了两类锁协议,分别是CENTRAL_LOCK和PEER_LOCK,其中PEER_LOCK会有可能死锁,所以,一般情况下,会使用CENTRAL_LOCK协议,
一般会使用tryLock来获取锁,该API是一个重载方法;
一类是直接传入要锁的资源,如果该资源已被锁,直接返回false,否则返回true,
一类是传入锁资源和获取锁等待时间,在获取锁时,如果该资源已被锁,会等待指定时间,
线程会阻塞,直到满足超时时间,返回值为false或true.

其中,判断一个资源是否被锁,直接使用printLocks(),返回的是一个string,可以通过字符串比较来达到判断是否被锁了,  其中JGroup的3.1版本这个方法应该有瑕疵。
   后面版本没有这个问题。

猜你喜欢

转载自s7n.iteye.com/blog/2120269