【发布时间】:2016-03-14 10:27:30
【问题描述】:
我使用 ConcurrentHashMap 来缓冲 websocket 的消息。
缓冲区每 200 毫秒以一个 JSON 字符串发送。之后我想从地图中删除该条目。
我猜这不安全,因为在 foreach 期间可能会有新消息进入缓冲区。
String sendString;
for(String msg : buffer.values()){
sendString += msg;
}
ws.send(sendString);
buffer.clear();
我怎样才能安全地移除元素?
【问题讨论】:
-
为什么不排队?更适合生产者-消费者场景
标签: java hashmap java.util.concurrent concurrenthashmap