Java多线程学习(五)
2020年3月1日学习总结
集合类是我们常用的开发工具,它们所封装的数据结构给我们的开发带来了极大的便利,随着从单线程开发环境到多线程开发环境的转换,有些集合类的使用不当,会造成不同程度的错误,给程序带来极大的影响。现在就集合类的线程安全性来做一些总结。
1.ArrayList线程不安全
1.1先来看看单线程环境下,ArrayList的add方法和遍历
public class ListTest {
public static void main(String[] args) {
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("a");
arrayList.add("b");
arrayList.add("c");
for (String s : arrayList) {
System.out.println(s);
}
}
}
程序的运行结果很好理解,这里不做过多的解释。
1.2 现在来看看有30个线程对同一个ArrayList进行add和读取的情况:
public class ListTest {
public static void main(String[] args) {
ArrayList<String> arrayList = new ArrayList<>();
for (int i = 0; i < 30; i++) {