作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 Servlet 3.0 API 的帮助下为我的网站实现一个动态通知系统(类似于 Facebook)。我计划支持此功能的结构是:
我的问题是:是否有必要使这个 map 线程安全?在最坏的情况下,代表“通知发送用户”的函数会将通知发送到 map 中的陈旧异步上下文,因为它对应的用户当前正在切换页面并且尚未切换发送新的 XMLHTTP 请求,或已注销。
但是,在每个页面加载时,我还有代码来检索数据库中比“上次检查日期”更新的所有通知,因此在页面加载时,通知用户不依赖于动态通知系统。因此,如果用户切换页面,他仍然会收到通知(显然,如果用户注销,通知的概念就不相关)。
根据这些信息,是否存在需要映射线程安全的场景?
最佳答案
您可能不需要精确的一致性..但您仍然不希望任何线程在写入时读取正常的 HashMap (添加可能会导致重新哈希并使获取线程陷入无限循环)。
此外,该计划无法很好地扩展到超过 1 个服务器。如果可以的话...只需使用 ConcurrentHashMap 即可。
关于JavaEE : Is is it wise to make my context attribute thread-safe in this scenario?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5916464/
我是一名优秀的程序员,十分优秀!