当前位置: 首页 > news >正文

临沂网站建设兼职最新域名查询ip

临沂网站建设兼职,最新域名查询ip,什么可以做冷门网站,wordpress超级开关文章目录 一、List二、Set三、Map 提示:以下是本篇文章正文内容,下面案例可供参考 一、List 代码如下(示例): public class ZZZZZZZZZZ {public static void main(String[] args) {// ArrList 非线程安全的集合List&l…

文章目录

  • 一、List
  • 二、Set
  • 三、Map


提示:以下是本篇文章正文内容,下面案例可供参考

一、List

代码如下(示例):

public class ZZZZZZZZZZ {public static void main(String[] args) {// ArrList 非线程安全的集合List<String> list1 = new ArrayList<>();for (int i = 0; i < 30; i++) {new Thread(() -> {// 多个线程同时向 ArrayList 添加元素list1.add(UUID.randomUUID().toString().substring(0, 8));System.out.println(list1);}).start();}}
}

输出结果

Exception in thread “Thread-1” Exception in thread “Thread-0” Exception in thread “Thread-4” Exception in thread “Thread-25” Exception in thread “Thread-23” Exception in thread “Thread-17” Exception in thread “Thread-18” Exception in thread “Thread-27” java.util.ConcurrentModificationException并发修改异常,由于ArrayList 不是线程安全的容器,多个线程并发添加元素,会导致竞争现象,最终产生该异常

故障出现

java.util.ConcurrentModificationException

导致原因

多线程并发争抢修改导致

解决方法

  • 使用线程安全的容器,例如:Vector,在该类中每个方法都加上了 synchronized,不会导致线程安全问题,但是由于锁的粒度太细,会导致程序的速度较慢。
  • 使用集合工具类的线程安全的方法,如:
static <T> List<T> Collections.synchronizedList(List<T> list)
  • juc 下面的 CopyOnWriteArrayList,该类使用使用 ReentrantLock 加锁解锁,每次添加新元素就会加锁,然后开辟比旧数组多1的空间,将原数组全部拷贝进去,再将新元素加到最后一个位置。由于每次添加元素都会拷贝原数组,如果原数组很大,就会对内存资源造成很大的消耗,因此适合读多写少的场景。源码如下:
             public boolean add(E e) {final ReentrantLock lock = this.lock;lock.lock();try {Object[] elements = getArray();int len = elements.length;Object[] newElements = Arrays.copyOf(elements, len + 1);newElements[len] = e;setArray(newElements);return true;} finally {lock.unlock();}}

二、Set

代码如下(示例):

public class ZZZZZZZZZZ {public static void main(String[] args) {// 非线程安全的 HashSetSet<String> set = new HashSet<>();for (int i = 0; i < 30; i++) {new Thread(() -> {set.add(UUID.randomUUID().toString().substring(0, 8));System.out.println(set);}).start();}}
}

故障出现

java.util.ConcurrentModificationException

导致原因

多线程并发争抢修改导致

解决方法

  • 使用集合工具类的线程安全的方法,如:
static <T> Set<T> Collections.synchronizedList(Set<T> s)
  • juc 下面的 CopyOnWriteArraySet,底层还是 CopyOnWriteArrayList,源码的构造方法如下:
    public CopyOnWriteArraySet() {al = new CopyOnWriteArrayList<E>();}

三、Map

代码如下(示例):

public class ZZZZZZZZZZ {public static void main(String[] args) {// 非线程安全的 HashMapMap<String, String> map = new HashMap<>();for (int i = 0; i < 30; i++) {new Thread(() -> {map.put(Thread.currentThread().getName(), UUID.randomUUID().toString().substring(0, 8));System.out.println(map);}).start();}}
}

故障出现

java.util.ConcurrentModificationException

导致原因

多线程并发争抢修改导致

解决方法

  • 使用线程安全的容器,如:ConcurrentHashMap

  • 使用集合工具类的线程安全的方法,如:

static <K, V> Map<K, V> Collections.synchronizedMap(Map<K, V> m)
http://www.shuangfujiaoyu.com/news/115.html

相关文章:

  • 响应式网站的好处推广怎么做才可以赚钱
  • 网站盗号怎么做专业网店推广
  • 博物馆网站建设策划书自助建站免费搭建个人网站
  • 青岛谁家做网站seo搜索引擎优化主要做什么
  • 温岭 网站制作百度用户服务中心官网
  • 那种漂亮的网站怎么做的外贸国际网站推广
  • 广州免费领养猫咪优化大师使用方法
  • c2c模式的典型代表安全优化大师
  • 深圳本地网站建设seo是如何做优化的
  • wordpress网站变灰打开百度网站
  • 微信小程序怎么做网页seo排名赚挂机赚钱软件下载
  • wordpress 海报风格网站如何优化排名软件
  • 建设网站英语产品怎么在网上推广
  • 网站备案下来以后怎么做网页网络销售怎么干
  • 用织梦做网站都需要用什么外贸网站优化推广
  • 做网站架构图搜外滴滴友链
  • 自助网站建设哪里可以郑州seo顾问培训
  • 北京交通管制信息网站百度云网盘下载
  • 广州必去的景点排名seo范畴有哪些
  • 做电商有哪些平台百度seo收录
  • 专业独立门户网站建设app营销十大成功案例
  • 做网站的需求清单廊坊优化技巧
  • 网站开发网站制作找个免费网站这么难吗
  • 上海网站制作官网人民网 疫情
  • 网站模板下载网站有哪些云搜索引擎入口
  • 白山建设局网站西安网站seo技术厂家
  • 在线做java题目的网站一个关键词要刷多久
  • 中小企业网站建设费用青岛模板建站
  • asp做的药店网站模板最好的网络营销软件
  • 网站建设的文案个人代运营一般怎么收费