Hazelcast - 为什么IMap.remove(键)被阻止?需要强制移除

时间:2017-04-12 17:41:15

标签: java integration hazelcast hazelcast-imap

我想在管理操作时强制从地图中删除一个键。试图删除的线程不是那个推杆...

线程卡在下面..:

Thread [xxxx] (Suspended)   
    waiting for: InvocationFuture<E>  (id=1746) 
    Object.wait(long, int) line: not available [native method]  
    InvocationFuture<E>(Object).wait(long) line: 201    
    InvocationFuture<E>.pollResponse(long) line: 300    
    InvocationFuture<E>.waitForResponse(long, TimeUnit) line: 245   
    InvocationFuture<E>.get(long, TimeUnit) line: 222   
    InvocationFuture<E>.get() line: 202 
    MapProxyImpl<K,V>(MapProxySupport).invokeOperation(Data, MapOperation) line: 320    
    MapProxyImpl<K,V>(MapProxySupport).removeInternal(Data) line: 449   
    MapProxyImpl<K,V>.remove(Object) line: 188  

为什么map.remove()会阻塞?有没有办法强制从地图中删除一个条目?

日Thnx

1 个答案:

答案 0 :(得分:2)

map.remove具有锁定感知功能,这意味着它将等待锁定释放。这是方法调用可能无法立即完成的原因之一。

所以问题:您使用锁吗?

如果是这样,你可以执行map.forceUnlock,然后调用map.remove()。 不知道它是否适合您的商业用例(很难想象)。