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

Java Hazelcast-为什么IMap.remove(键)被阻止?需要强制移除吗,java,integration,hazelcast,hazelcast-imap,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

我想在管理操作时强制从映射中删除密钥。试图移除的线程不是放置

螺纹卡在下面

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  
线程[xxxx](挂起)
等待:未来(id=1746)
Object.wait(long,int)行:不可用[本机方法]
调用未来(对象)。等待(长)行:201
调用未来。pollResponse(长)行:300
调用Future.waitForResponse(长,时间单位)行:245
调用future.get(长,时间单位)行:222
调用future.get()行:202
MapProxyImpl(MapProxySupport).调用操作(数据,MapOperation)行:320
MapProxyImpl(MapProxySupport).removeInternal(数据)行:449
MapProxyImpl.remove(对象)行:188
为什么map.remove()会被阻塞?有没有办法强制从地图中删除条目


Thnx

映射。remove
是锁感知的,这意味着它将等待锁被释放。这就是方法调用可能无法立即完成的原因之一

所以问题是:你在使用锁吗?

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

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

所以问题是:你在使用锁吗?

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

是的,我正在使用锁并在移除前调用forceUnlock。Forceunlock文档说它总是成功地释放锁,但对我来说,这没有任何区别。。Remove仍在阻塞,原因我不知道。有什么建议吗Tom?你确定没有其他线程/客户端在这两者之间获得锁吗?(在强制解锁和移除之间)?我认为你是对的。。我猜在forceUnlock调用后,tryLock中等待的其他线程会获取锁,这会导致我在remove中等待。。这对我不好,但你的答案是正确的。很高兴听到。谢谢!是的,我正在使用锁并在移除前调用forceUnlock。Forceunlock文档说它总是成功地释放锁,但对我来说,这没有任何区别。。Remove仍在阻塞,原因我不知道。有什么建议吗Tom?你确定没有其他线程/客户端在这两者之间获得锁吗?(在强制解锁和移除之间)?我认为你是对的。。我猜在forceUnlock调用后,tryLock中等待的其他线程会获取锁,这会导致我在remove中等待。。这对我不好,但你的答案是正确的。很高兴听到。谢谢!