欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

java 容器 线程_JAVA多线程并发容器

发布时间:2025/3/20 编程问答 29 豆豆
生活随笔 收集整理的这篇文章主要介绍了 java 容器 线程_JAVA多线程并发容器 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1、ArrayList线程不安全;CopyOnWriteArrayList线程安全

package concurrent;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

import java.util.concurrent.CopyOnWriteArrayList;

/**

* Auth: zhouhongliang

* Date:2019/8/1

* CopyOnWriteArrayList 替代 ArrayList

*/

public class CopyOnWriteArrayListDemo {

public static void main(String[] args) {

List list = new CopyOnWriteArrayList<>();

//List list = new CopyOnWriteArrayList<>();

for (int i=0;i<1000;i++){

list.add(i);

}

Iterator iterator = list.iterator();

while(iterator.hasNext()){

list.remove(iterator.next());

}

System.out.println(list);

}

}

2、HashMap线程不安全;HashTable synchronize线程安全、```

ConcurrentHashMap采用”分段锁”线程安全;

package concurrent;

import java.util.HashMap;

import java.util.Hashtable;

import java.util.Map;

import java.util.concurrent.ConcurrentHashMap;

import java.util.concurrent.CountDownLatch;

import java.util.concurrent.ExecutorService;

import java.util.concurrent.Executors;

/**

Auth: zhouhongliang

Date:2019/8/1*/public class ConcurrentHashMapDemo {public static void main(String[] args) throws InterruptedException {Map map = new HashMap();//线程不安全//Map map = new Hashtable();//线程安全//Map map = new ConcurrentHashMap();//线程安全ExecutorService executorService = Executors.newCachedThreadPool();CountDownLatch countDownLatch = new CountDownLatch(10000);for (int i=0;i<10000;i++){final Integer index = i;executorService.execute(()->{map.put(index,index);countDownLatch.countDown();});}countDownLatch.await();System.out.println(map.size());}}

总结

以上是生活随笔为你收集整理的java 容器 线程_JAVA多线程并发容器的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。