JAVA的List怎么实现线程同步啊
我的网站用一个list记录最近用户浏览的信息,只记录最新几十条,频凡的添加移除操作,如果在线用户少就没事,在线用户一多就出错,错误就是list不是线程同步的一个线程在移除时,另一个线程在循环就报错,有什么好办法.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我的网站用一个list记录最近用户浏览的信息,只记录最新几十条,频凡的添加移除操作,如果在线用户少就没事,在线用户一多就出错,错误就是list不是线程同步的一个线程在移除时,另一个线程在循环就报错,有什么好办法.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
要是这样的问题我会用 ThreadLocal,试试
用这个 整理一下不行 Collections.synchronizedList(list) ?
引用来自#8楼“人人”的帖子
引用来自#6楼“yifeng”的帖子
CopyOrWriteArrayList
java 并发包 提供的 ArrayList 线程安全类
引用来自#6楼“yifeng”的帖子
CopyOrWriteArrayList
java 并发包 提供的 ArrayList 线程安全类
好的我看看
用 for(Object o:List)不可以吗?
private static ConcurrentHashMap<String, Method> actions = new ConcurrentHashMap<String, Method>();
synchronized (actions) {
actions.put(key, m);
}
这个也不是完全线程同步的,Vector只在少量的地方对象同步,大部分方法上进行了同步
Vector 是线程安全的, ArrayList 不是线程安全的