在java开发中,我们经常使用ArrayList作容器来存储我们的数据,但它是线程不安全的,在多线程环境中使用它可能会报错。
接下来我们从一段代码中了解一下多线程环境下使用ArrayList的情况:
public class ThreadTest {
public static void main(String[] args) {
List<Integer> integerList = new ArrayList<>();
// 线程池
ExecutorService executorService = Executors.newFixedThreadPool(12);
for (int i = 0; i < 2; i++) {
executorService.execute(() -> {
for (int num = 0; num < 1000; num++) {
integerList.add(num);
}
});
}
if (CollUtil.isNotEmpty(integerList)) {
for (Integer integer : integerList) {
System.out.print("打印integer:");
System.out.println(integer);