多线程使用集合
来源:互联网 发布:互联网大数据论文题目 编辑:程序博客网 时间:2024/06/05 18:40
在使用多线程用到map集合作为参数时,这时就要注意了,不能使用hashMap来实现map集合,这是因为hashMap不是同步的,不能用于多线程。我们可以使用HashTable进行多线程。
我在工作中就遇到了这种情况,当时使用6个多线程进行存储数据库;代码如下
for(int i=0;i<6;i++){
Map<String,Object> map = new HashMap<String,Object>();
map.put("beginIndex",i*list.size()/6;
map.put("endIndex",(i+1)*list.size()/6;
new Thread(new MyThread(serviceImpl,list,map)).start();
}
结果没报错,但是六个多线程在使用时取得list数据有重复的,并没有我想象中的遍历完list集合,这6份list有的重复了,有的没有遍历,很随机。
查看api做了一些总结:HashMap是非线程安全的,只适用于单线程的情况下;
HashMap是基于哈希表实现的,是单链表形态的
而HashTable是线程安全的,可以运用于多线程;
阅读全文
0 0
- 多线程使用集合
- 多线程中使用Java集合类
- java多线程使用集合那点事
- 多线程环境下安全使用集合 API
- 多线程环境中安全使用集合API
- 多线程环境中安全使用集合API
- JAVA 集合多线程下的使用及测试
- java多线程(十)使用线程安全的集合
- 使用多线程获取大量数据集合中的关键数据
- 多线程(七)并发集合
- 多线程用法集合
- android多线程----同步集合
- Java---集合,多线程机制
- 多线程 同步集合类
- 多线程集合队列等等
- 多线程集合类
- 使用集合
- 使用集合
- 文件时间对于CP命令的影响
- vtk3———System Overview
- 可视化工具–D3–基础图表的绘制(line)
- java中的二维数组
- tensorflow变量管理
- 多线程使用集合
- muscial.ly-实习小结2
- []==false为什么为true分析,扩展null==0是什么结果
- HDU-2665 Kth number (主席树 不带修改区间第k大)
- 关于activiti的springMVC + myBatis项目pom.xml文件的简单配置
- java反射机制
- 第七周 项目6
- Apache Apollo 安装使用
- node.js实现即时聊天室,使用模块(express+socket.io),附源码