• LinkedList(3):并发异常


    1 LinkedList并发异常

    1. package com.example.demo;
    2. import java.util.Iterator;
    3. import java.util.LinkedList;
    4. public class TestLinkedList {
    5. public static void main(String[] args) {
    6. LinkedList linkedList = new LinkedList(); //双向链表
    7. linkedList.add(11);
    8. linkedList.add(22);
    9. linkedList.add(33);
    10. //nextIndex : 0 next 第一号节点元素
    11. //lastReturned 记录返回值的对象
    12. // private int expectedModCount = modCount; 将记录链表长度发生变化次数的记录值赋值给 期望值 -> 程序在初始化的时候,那么他们一定是相等的
    13. Iterator iterator = linkedList.iterator();
    14. while (iterator.hasNext()){
    15. linkedList.add(10);
    16. System.out.println(iterator.next());
    17. }
    18. System.out.println(linkedList);
    19. }
    20. }

    在查询的时候进行插入,报错如下:

    因为在linklist初始化的时候,期望值expectedModCount和真实值modCount是一样的,而进行add()方法以后就不一样了。

     
    

    如下图,只改变了modCount的值。

    2 测试并发修改异常

    1. package com.example.demo;
    2. import java.util.LinkedList;
    3. import java.util.ListIterator;
    4. public class TestLinkedList {
    5. public static void main(String[] args) {
    6. LinkedList linkedList = new LinkedList(); //双向链表
    7. linkedList.add(11);
    8. linkedList.add(22);
    9. linkedList.add(33);
    10. //nextIndex : 0 next 第一号节点元素
    11. //lastReturned 记录返回值的对象
    12. // private int expectedModCount = modCount; 将记录链表长度发生变化次数的记录值赋值给 期望值 -> 程序在初始化的时候,那么他们一定是相等的
    13. ListIterator iterator = linkedList.listIterator();
    14. while (iterator.hasNext()){
    15. //hashNext 遍历链表长度的次数
    16. iterator.add(10);
    17. System.out.println(iterator.next());
    18. }
    19. System.out.println(linkedList);
    20. }
    21. }

    结果如下:

    这个add方法会对期望值和真实值同时进行修改,所以无异常。

  • 相关阅读:
    DVWA-XSS(DOM)Low/Medium/High低中高级别
    macOS 和 Linux 有什么区别?
    FISCO BCOS离线部署问题记录并解决
    整理37个超牛逼的Python库,用过一半算你牛
    上传本地包到私有maven仓库
    可视化表格软件-FineReport图表跨sheet引用单元格数据
    ArcGIS笔记9_数据源缺少空间参考信息?如何定义坐标系?
    C++第一课(初识C++)
    vue课程77 使用解构赋值
    lio-sam框架:回环检测及位姿计算
  • 原文地址:https://blog.csdn.net/u013938578/article/details/132672101