相对Vector,ArrayList在什么的情况下会因异步出现问题
例:将数据库中10000条数据导出至Excel中。
1、将数据读取后保存在Vector里,再输出至Excel中。
2、将数据读取后保存在ArrayList里,再输出至Excel中。
以上两种方法都可以实现。
关键在于Vector是同步,线程安全;ArrayList非线程安全。
但我在两个页面上同时执行导出功能,导出的Excel数据均正常。这种同时执行导出功能算是并发操作吗?并发是因为哪些情况出现。
那什么样的具体情况,使用ArrayList会出现问题?
[解决办法]
同步问题会在多线程访问单一资源时出错。
也就是说如果你的Arraylist是静态的,那么多线程访问就会出现问题。
但是如果针对每个请求,实例化一个arraylist 那么就不存在资源竞争的问题,这里的问题就变成了性能问题。
就是说如果一千个人同时导出那么你的server就可能不再响应。
[解决办法]
这要看你的2个ArrayList是不是同一个对象,如果不是,不会有问题
[解决办法]
将你的Vector或者ArrayList保存到request或者servletContext里面效果是不同的,这就是线程安全问题.
[解决办法]