关于多线程采集数据数组越界问题

baidu_33198101 2015-11-30 04:48:02
利用JAVA线程池读取数据,部分数据能够正常读取,个别出现如下提示:
Exception in thread "pool-1-thread-3" java.lang.IndexOutOfBoundsException: Index: 293, Size: 293
at java.util.ArrayList.rangeCheck(ArrayList.java:635)
at java.util.ArrayList.get(ArrayList.java:411)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
有人知道如何解决吗?
...全文
264 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
securitit 2015-12-11
  • 打赏
  • 举报
回复
多线程共享变量啊,要不然如果一个数组,多个线程采集数据向里面放,怎么能保证数据的正确性呢,肯定要保证多线程操作的索引位置是不一样的。
君莫傲 2015-12-10
  • 打赏
  • 举报
回复
线程池中的数据过多,导致的数据数组越界,用try-catch拦截一下

51,407

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧