首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我不能显示我的arrayList,当我用另一个线程保存她?

当你在一个线程中保存ArrayList时,可能会遇到无法显示该ArrayList的情况。这是因为在多线程环境下,可能会出现并发问题,导致数据不一致或丢失。

为了解决这个问题,可以采用以下方法:

  1. 使用线程安全的数据结构:可以使用线程安全的ArrayList实现类,如CopyOnWriteArrayList。这个类在进行写操作时会创建一个新的副本,保证了线程安全性。
  2. 使用同步机制:可以使用synchronized关键字或Lock对象来保证在保存ArrayList时的同步访问。这样可以确保在一个线程修改ArrayList时,其他线程无法同时访问。
  3. 使用线程间通信:可以使用wait()和notify()方法来实现线程间的通信。在保存ArrayList之前,可以让其他线程等待,直到保存操作完成后再通知其他线程进行访问。
  4. 使用线程池:可以使用线程池来管理线程,确保在保存ArrayList时只有一个线程在执行。这样可以避免并发问题。

总之,为了解决无法显示ArrayList的问题,需要考虑并发安全性和线程间通信。根据具体的场景和需求,选择适合的方法来保证数据的一致性和可靠性。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):提供弹性计算能力,满足各类业务需求。详情请参考:https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库MySQL版:提供高性能、可扩展的MySQL数据库服务。详情请参考:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云对象存储(COS):提供安全可靠的云端存储服务,适用于各类数据存储需求。详情请参考:https://cloud.tencent.com/product/cos
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

编程模拟疫情传播来告诉你: 为什么现在你还不能出门

看完视频你就明白为什么不能出门了,千万不要放松警惕!(@Ele实验室 ) 在家憋了一段时间的人们,耐心也在一点一点消磨中。很多人已经忍不住开始想蠢蠢欲动了。...他们总有一套自己理论:我们城市才一点确诊病人,而且在距离我们很远地方,就出去一会儿,哪有那么巧合,就感染上了。没事儿!大街上都没人,戴着口罩又没事。...疫情防控工作防控点或者是成功与否主要在于感染人员是否戴口罩、医院里隔离床位(或者是自我隔离位)、人口流动。...因此通过这一次疫情防控,为了你、、他,请以后感冒发烧生病之后,能够带个口罩,减少传染率。因为不知道你体内这一个病毒威力如何。 ?...因此一个疫情发生,必须依靠强大有力政府比如中国,和广大医院医生护士等伟大工作者们努力,所以平时请尽量尊重他们这个职业。 ?

2.1K10

十个形象比喻,助你理解计算机面试必备知识点

假设在五一、国庆假期,你去晚了,可能当天票就已经卖完了,就无法进去游玩了。即使你最后能进去,排队也排到你怀疑人生。 4. TCP 握手为什么是三次?不能是两次?不能是四次?...TCP握手为什么是三次呢?为了方便理解,我们以谈恋爱为例子:两个人能走到一起,最重要事情就是相爱,就是我爱你,并且知道,你也爱我,接下来我们以此来模拟三次握手过程: 为什么握手不能是两次呢?...如果只有两次握手,女孩子可能就不知道,那句也爱你,男孩子是否收到,恋爱关系就不能愉快展开。 为什么握手不能是四次呢? 因为握手不能是四次呢?...线程池工作原理 面试官如果要我们讲下线程池工作原理的话,大家讲下以下这个流程图就可以啦: 为了形象描述线程池执行,加深大家理解,打个比喻: 核心线程比作公司正式员工 非核心线程比作外包员工 阻塞队列比作需求池...TCP为什么需要四次挥手 举个例子吧,假设小明和小红打电话聊天,通话差不多要结束时: 小红说,“没啥要说了”。小明回答,“知道了”。

65741
  • TCP流量窗口……看完笑出鹅叫声

    假设在五一、国庆假期,你去晚了,可能当天票就已经卖完了,就无法进去游玩了。即使你最后能进去,排队也排到你怀疑人生。 4. TCP 握手为什么是三次?不能是两次?不能是四次?...TCP握手为什么是三次呢?为了方便理解,我们以谈恋爱为例子:两个人能走到一起,最重要事情就是相爱,就是我爱你,并且知道,你也爱我,接下来我们以此来模拟三次握手过程: 为什么握手不能是两次呢?...如果只有两次握手,女孩子可能就不知道,那句也爱你,男孩子是否收到,恋爱关系就不能愉快展开。 为什么握手不能是四次呢? 因为握手不能是四次呢?...线程池工作原理 面试官如果要我们讲下线程池工作原理的话,大家讲下以下这个流程图就可以啦: 为了形象描述线程池执行,加深大家理解,打个比喻: 核心线程比作公司正式员工 非核心线程比作外包员工 阻塞队列比作需求池...TCP为什么需要四次挥手 举个例子吧,假设小明和小红打电话聊天,通话差不多要结束时: 小红说,“没啥要说了”。小明回答,“知道了”。

    27420

    送你一个并发编程奇淫巧技,舒服很...

    先问问你,当你往线程池里面提交了一组计算任务以后,你想要获得返回值。 你应该用 Executor 什么提交方法?这个提交方法什么重载类型? 什么?你答不上来?...首先主线程把三个任务提交到线程池里面去,把对应返回 Future 放到 List 里面存起来,然后执行“开始准备获取结果”输出语句。...然后提交任务时候 competitionService submit 方法。...构造方法: 可以看到是需要传入一个线程池对象。...原理分析完了,说一个需要注意地方。 当你使用场景是不关心返回值时候千万不要闲蛋疼 CompletionService 去提交任务。 为什么? 因为前面说了,里面有个队列。

    42511

    Android模拟面试,解锁大厂——从Activity创建到View呈现中间发生了什么?

    还有少数人会提到DecorView和ViewRootImp作用。但是,当我继续追问关于Window内容时,几乎没有人回答上来。...除此之外,你还能在本章找到以下问题答案: 1. 为什么要有设计Window? 2. 子线程真的不能更新UI吗? 3. 为什么在ActivityonCreate方法中无法获取View宽和高?...不清楚同学可以去看《Android开发艺术探索》第四章,在这里就不继续深入了。 总结 下面回答文章前言部分提出几个问题。 为什么要有设计Window?...View测量、布局、绘制只是在View树内进行,把一个View树封装在一个Window中方便视图管理。 子线程真的不能更新UI吗?...ActivityonCreate方法为什么无法获取View宽和高? 这个问题和子线程不能更新UI问题很像,也是方法执行时机一个问题。Viewmeasure、layout、draw。

    79530

    面试java_后端面经_5

    小姐姐:为什么有很多人在感情中付出很多,却得不到想要结果?...从以上简单自我介绍里,希望公司能给我一个展示自己能力机会) 1 多线程几种实现方式(继承Thread类,实现Runnable接口,实现Callable接口,线程池) 2 线程join()方法...(等待这个线程死亡,可以使线程之间并行执行变成串行) 3 ArrayListremove操作(ArrayList有俩个remove()重载方法,一个参数是int类型,另一个参数是Object类型...,remove(1)是删除索引为1元素,remove(new Integer(1))是删除元素1,底层是equals进行比较。)...ln是创建硬链接 ln -s是创建软连接) 18 linux查看进程命令(ps命令 -A:所有的进程均显示出来、-a显示现行终端机下所有进程,包括其他用户进程 、-u以用户为主进程状态) 如果喜欢本文

    43620

    Java集合经典26问!

    大家好,是大彬~ 今天给大家分享Java集合常考面试题,准备找工作小伙伴赶紧收藏起来~ 常见集合有哪些?...List 、Set和Map 区别 List 以索引来存取元素,有序,元素是允许重复,可以插入多个null; Set 不能存放重复元素,无序,只允许一个null; Map 保存键值对映射; List...红黑树是对AVL树优化,只要求部分平衡,非严格平衡来换取增删节点时候旋转次数降低,提高了插入和删除性能。 在解决 hash 冲突时候,为什么选择先用链表,再转红黑树?...将HashMap长度定为2 幂次方,这样就可以使用(n - 1)&hash位运算代替%取余操作,提高性能。 HashMap为什么线程不安全? 多线程下扩容死循环。...例如:当线程a正通过iterator遍历集合时,另一个线程b修改了集合内容,此时modCount(记录集合操作过程修改次数)会加1,不等于expectedModCount,那么线程a访问集合时候,

    49410

    重磅!!面试季--最新面试题总结出厂,附题解,后期持续分享!

    从以上简单自我介绍里,希望公司能给我一个展示自己能力机会) 1 多线程几种实现方式 继承Thread类,实现Runnable接口,实现Callable接口,线程池 下面是csdn博客一篇文章...remove操作 ArrayList有俩个remove()重载方法,一个参数是int类型,另一个参数是Object类型,remove(1)是删除索引为1元素,remove(new Integer(1...为什么对倒数第二个元素进行删除不会报异常,而对其他位置删除会报异常? 我们来看一下 ArrayList内部类 Itr 。...一般在java.util.concurrent包下集合用就是安全失败 具体查看:ArrayList源码详解 12 如果clone单例模式对象会怎样 不行,这里必须要实现Cloneable接口,所以需要单例不能去实现...ln是创建硬链接 ln -s是创建软连接) 18 linux查看进程命令 ps命令 -A:所有的进程均显示出来、-a显示现行终端机下所有进程,包括其他用户进程 、-u以用户为主进程状态 linux

    35820

    从教女友写代码中学到

    对任何用日文写初学者HTML/CSS书籍或教程没有什么好感,所以我专门为制作了一本自己教材(截屏如下) ?...另一个Chrome窗口。显示当前复制网站。就是一个本地HTML页面。见封面左上角。 3. Sublime Text 2窗口。分割成HTML视图和CSS视图。见封面左下角。 4....记录笔记和代码片段。见封面右下角。 5. MacGitHub窗口。跟踪修改。第一天就在她工作流程里加入了GitHub,这样就可以pull来查看她代码。见封面的最左边。...是一名留不住人工程主管。我们团队一名工程师离职去了一家更小更前卫公司。这是离职谈话: :你为什么要离职? 他:因为他们有更大显示器。 因此为什么不给新手也提供大显示器呢?...每次错过快捷键机会时,就会提示会把快捷键写作便签上,贴在屏幕边来试着提醒自己。但是一天天过去了,她还是会忘记那些快捷键。 后来发现从来没学过哪个手指用来负责敲哪些键。

    83990

    经历面试题,先做下部分总结。

    StringBuilder是线程不安全   B. Java类可以同时abstract和final声明   C. ... 4 5 2 4 样例输出: 1 3 5 这道题答案不唯一,给出思路是,两个数组转为两个ArrayList然后通过两次遍历,把第一行数组中和第二行数组中相等元素放到一个新list中,最后直接第一个数组...某互联网教育公司(做中小学生教育培训) 这家公司比较奇葩,笔试题七八页,而且做完了面试题后就和HR聊了聊就让回去了,为什么是先和HR聊,得到结果是,我们每天约很多人来面试,如果面试官每个都和应聘者面试的话...李娜、叶楠和赵芳三位女性特点符合下面的条件: (1)恰有两位非常学识渊博,恰有两位十分善良,恰有两位温柔,恰有两位有钱; (2)每位女性特点不能超过三个; (3)对于李娜来说,如果非常学识渊博,那么她也有钱...根据张某说:刚才不知道,听孙某一说,现在就知道了。可以确定他知道那个名字不是“云”,(如果是“云”,听张某说了之后他还是不能确定答案,因为带“云”名字有两个)。

    54930

    Java 中一个天天都在被人使用,但你并不知道为什么知识点

    ,如果说根本不知道是什么类型时候,根据没办法进行强转,这种方式简直不能忍,还特别容易出错。...这个时候大家可能会说到,ArrayList 天天使用,也没手动强转过啊,不还是好好。 这就要归功于我们今天所说主角,泛型了。...我们给 ArrayList 增加泛型,通过定义一个泛化类型,当我们在使用时候如果传递类型不是指定类型,那么在编译阶段就会报错,从而也就不会有需要强转操作了。...接下来我们再看另一个问题,假设我们有一个方法,是打印 PersonList 内容,如下所示: public void print(ArrayList personList) { for...如下所示 extends 表示传进来参数只要是 Person 子类都可以,这样就还支持多态了。所以现在小伙伴知道了为什么JDK 源码以及很多框架源码中都有很多?

    23630

    从源码分析常见集合区别之List接口

    List接口实现自Collection接口,是Java集合框架中一员,List接口下又有ArrayList、LinkedList和线程安全Vector,今天就简单分析一下ArrayList和LinkedList...是底层实现是一个可变长度Object类型数组,当我们给list插入数据时,就会调用ArrayListadd方法,根据Java提供看不懂add方法注解来看,当ArrayList插入数据时,是在ArrayList...以我80多年考专八丰富经验,grow方法就是要确保ArrayList容量要足够你,以免送你一个数组越界异常,回归正题,当面试官问你ArrayList、LinkedList特性时,你会不假思索...“背”出来:ArrayList擅长查询,其查询时间是一定,增删慢,LinkedList与ArrayList相反,如果你知道这些,恭喜你,你大学可以毕业了,因为毕业时候就知道这个(谨代表广大毕业生最低水平...,嗯,是不是这样就真相了,ArrayList在扩容时候会把原来数组复制到另一个内存空间更大数组中,然后把新元素添加到扩容以后数组中。所以喽,你不慢谁慢。

    31942

    人人网面试经历「建议收藏」

    他们有一套自己评分方式,有自己输入输入例,有点像OJ题目,限时30分钟。判分60分以上就能进入面试,不及格就不能进入面试,只好走人。...这道题Map数据结构来做最适合,Map是一种key-value数据结构。...就这样进入了面试,面试主要问我上一家为什么离职,期待薪资,有没有女朋友,她在哪里工作之类的话题。在面试过程中,好奇问面试官,为什么回文数那个例子说给例子是非回文数?...那时候已经是午间10点多,太阳正火辣呢,得找家打印店看看。简历打印出来了,终于知道为什么他们强调要上交他们修改过后简历了。因为这份简历是经过包装之后。...ArrayList和LinkedList区别,为什么ArrayList线程安全? 10. 如何配置服务器(tomcat)内存大小? 11. 说一说Servlet实现接口?

    44320

    Java 基础高频面试题(2021年最新版)

    23、为什么不能根据返回类型来区分重载? 如果我们有两个方法如下,当我们调用:test(1) 时,编译器无法确认要调用是哪个。...52、线程 join() 方法是干啥? 用于等待当前线程终止。...WAITING:无限期等待另一个线程执行特定操作线程处于此状态,需要被显示唤醒,否则会一直等待下去。...对于顺序插入和删除:由于 ArrayList 不需要移动节点,因此在效率上比 LinkedList 更好。这也是为什么在实际使用中 ArrayList 更多,因为大部分情况下我们使用都是顺序插入。...74、为什么要改成“数组+链表+红黑树”? 主要是为了提升在 hash 冲突严重时(链表过长)查找性能,使用链表查找性能是 O(n),而使用红黑树是 O(logn)。 75、那在什么时候链表?

    52720

    Java中容器遍历

    当我增强for循环遍历非并发容器(HashMap、ArrayList等),如果修改其结构,会抛出异常 ConcurrentModificationException,因此在阿里巴巴Java规范中有说到...也许有些人会说,只是在单线程中修改了,并没有并发操作,但系统也抛了这样这样错误,这是为什么呢?...所以,我们要么就直接显示地使用 iterator,用它 remove方法移除对象。如果你实在想用 增强for循环遍历删除,那么也只能在删除一个后,立刻退出循环。...但无论哪种方法,当多个线程同时修改时,都会有出错可能性,因为你即时保证单个线程 modCount和 expectedModCount,但这个操作并不能保证原子性。...因此,如果在多线程环境下,更推介使用 ConcurrentHashMap,因为它没有 modCount和 expectedModCount概念,因此,即时你是使用 增强for循环遍历删除,也不会出现问题

    82230

    java多线程与高并发:LockSupport、淘宝面试题与源码阅读方法论

    我们来分析一下这个小程序 为什么while而不是if?...一个等待队列出来了,另一个叫consumer第二个等待队列出来了,当我们使用producer.await();时候,指的是当前线程进入producer等待队列,使用producer.signalAll...,他一聊这些色号时候,就跟她聊不到一起去了,现在写程序这些人就像住在天宫的人,而你就是小河边光屁股小孩,你想理解思路,你得先让你思维达到她那个高度再说,读源码不管你读什么源码,基本上第一个要有一定数据结构基础...,模板是固定,里边方法是由具体子类去实现当我们开始造车时候,就会调用具体子类去实现函数,所以叫为钩子函数,勾着谁呢?...什么叫公平什么叫非公平,当我们获得一把锁时候,有一些等待队列,如果说新来了一个线程要获得这个锁时候,先去检查等待队列有没有人,如果有后面排队,这个叫公平,上来二话不说,才不管你队列有没有人在等着

    40120

    Java 集合(List、Set、Map 等)相关问答归纳再整理

    (这是对装潢模式应用,将已有对象传入另一个构造器中创建新对象来增强实现)。...内存消耗:LinkedListed 每一个元素都需要存放前驱和后继节点地址,所以每一个元素都更加消耗空间,而 ArrayList 只要是在结尾会预留一定容量空间,这是扩容所导致不能充分填满数组情况...具体分析可参考在知乎回答:Java遍历HashSet为什么输出是有序?@BWH_Steven 答案 这个问题非常值得深入分析,对于 Set 和 Map 源码理解很有帮助!!!...indexFor(int h, int length) { return h & (length - 1); } 可以看到其本质计算方法都是 (length - 1) & hash 提一句,为什么取模运算时我们...Hashtable 就是一把锁 synchronized 来保证线程安全,效率不是很高,多线程下,很可能会陷入阻塞轮询状态。

    78230

    The Brain vs Deep Learning(五)

    一旦接触了其他人类,她被教授英语作为一种语言(后来也是手语),但她从来没有真正掌握它。相反,她很快掌握非口语语言。 对于陌生人,几乎完全非口语语言沟通。...不这么认为。这显示了我们在计算机视觉方法原始和朴素。 对象识别是人类视觉一部分,但它不是例外。 Can we do with less computational power?...当我们甚至不能理解其学习算法时,便认为我们可以超越这个奇怪复杂器官是相当幼稚。 除此之外,我们将开发更好算法从而大脑更有用声明是不可能。 我们只有在实现它时才能证明它,我们不能证伪它。...想象一下,如果有另一个模型,但你只能使用它,当我们已经证明了所有的粒子存在。 这个模型将是相当无用。 当它对世界上行为没有任何预测时,我们将无法这个理论来制造和发展电子学。...与大脑相比,为什么对深度学习简单期望是错误认为这个论点有一些真理在,但本质上,它提出了错误问题。

    26220

    女票竟然问我什么是同步、异步、阻塞、非阻塞?

    女票是一个爱问问题的人,最喜欢没事问计算机方面的,尽管她是一名数学教师,尽管学过计算机编程;但是认为啥都不会,有时候在烦躁问我,我会冲发脾气,这里呢,认认真真(当面)跟女票道个歉,纯粹是想帮我分忧解难...,一脸期待等着,脸上洋溢微笑,看到来自女票肯定目光。 ”老公你这个图画挺好看啥软件画啊,好清晰哦!“,一脸崇拜对我说。 ”嚯嚯嚯,原来你看到是这个啊!...image.png 通俗易懂语言描述: 阻塞/非阻塞:区别在于发起请求的人目前线程/进程状态。...言外之意:并发描述某个时间段,并行描述某个时间点 并行:当我cup是多核时,就能出现一个cpu在执行一个线程同时,另外一个cpu可以执行另一个线程,它们两个相互不争抢cpu资源,在同一时刻,可以同时执行多种任务...最后总结 阻塞/非阻塞:主要是看应用程序等待消息通知状态来看。阻塞当前线程被挂起,线程什么事情都不能做,只能等待有结果返回才能继续做下一件事情。

    62220

    疯转|最近5年133个Java面试问题列表

    意思是,如果改变引用指向数组,将会受到 volatile 保护,但是如果多个线程同时改变数组元素,volatile 标示符就不能起到之前保护作用了。...因为 Java 中读取 long 类型变量不是原子,需要分成两步,如果一个线程正在修改该 long 变量值,另一个线程可能只能看到该值一半(前 32 位)。...当我们说线程安全时,意思是即使初始化是在多线程环境中,仍然能保证单个实例。Java 中,使用枚举作为单例类是最简单方式来创建线程安全单例模式方式。...(答案) JVM 中堆和栈属于不同内存区域,使用目的也不同。栈常用于保存方法帧和局部变量,而对象总是在堆上分配。栈通常都比堆小,也不会在多个线程之间共享,而堆被整个 JVM 所有线程共享。...使用下标访问一个元素,ArrayList 时间复杂度是 O(1),而 LinkedList 是 O(n)。更多细节讨论参见答案。 52)哪两种方式来实现集合排序?

    2K50
    领券