最新要闻
- 世界观察:不点拍照按键也能拍照!荣耀Magic 5全新技术曝光:堪比变魔术
- 全球观热点:自信满满!萌娃觉得自己掌握了英语的窍门 张口让网友沉默
- 当前播报:电动车里什么最耗电?13类电器功率排名来了!出乎意料
- 当前关注:义乌市百货有限责任公司
- 【新要闻】饰组词语接龙_饰组词语
- 世界要闻:猛男专属 吉利几何E超吸粉特别版上市:9.98万元
- 全球热点评!《三体》被改编成剧本杀 三体宇宙索赔300万
- 热资讯!算法正在谋杀新闻 各种日报带头摆烂 十亿中国网友却为此狂欢
- 联想小新Pro 14天青蓝来了:13代酷睿 1TB硬盘
- 天天日报丨国产架构的龙芯CPU可以跑QQ了!底层重写、与x86/Arm肩并肩
- 当前滚动:全商汇深圳控股集团有限公司_全商汇
- 独居老人为家中热闹没装大门 多车误入院子
- 每日资讯:RTX 4090显卡都能用 长城850W金牌全模电源504元(每瓦0.6元)
- 热门:沃尔沃XC90 T8充电版:经过最新升级后仍是首选SUV
- 全球新消息丨网友用AI生成《黑豹2》电影白人版海报 激怒正义人士
- 热讯:邝飚
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
【Java】ArrayList线程不安全的坑
问题复现:
使用Java的steam().paralleStream(),foreach()方法向ArrayList添加数据,导致ArrayList中出现空值,代码如下:
(相关资料图)
public static void main(String[] args) { Lista = new ArrayList<>(); for (int i = 0; i < 20; i++) { a.add(i); } List a1 = new ArrayList<>(); a.parallelStream().forEach(x -> { a1.add(String.valueOf(x)); }); System.out.println(a1); }
输出结果:
[12, 6, 14, 5, 13, 8, 11, 9, 10, 7, 2, 17, 1, 4, 0, null, 19, 18, 16, 15]
如上,会出现null值
问题分析:
ArrayList通过size变量来控制当前数组元素的指针,代码:
private void add(E e, Object[] elementData, int s) { if (s == elementData.length) { elementData = this.grow(); } elementData[s] = e; this.size = s + 1; } public boolean add(E e) { ++this.modCount; this.add(e, this.elementData, this.size); return true; }
如果此时出现多线程操作,例如Thread1获取到size=3,对数组的第三个元素进行赋值,此时Thread2获取到的size也等于3,也对数组第三个元素进行赋值,此时Thread1和Thread2都操作的第三个元素,然后此时Thread1进行size+1操作,Thread2进行加size+1操作,当前size值为5,但是实际数组中只有4个元素,有一个为null,因为Thread2本来应该对数组第4个元素赋值,因为线程不安全导致拿到的size值为3
解决方式:
1.使用Vector,所有方法用synchronized修饰,数组结构
2.Collections.sychronizedList(list)的方式获取一个list的代理,不限于ArrayList,可以实现任意list子类的同步,对大部分操作代码块进行加锁,例如:add,set,get,foreach等,不过迭代器操作未加锁,依旧是线程不安全的
3.使用Java集合的stream().map().collect(Collectors.toList())方法,利用Fork/Join
的分治,每个线程会创建一个独立list进行操作,最后合并
4.CopyOnWriteArrayList,写操作单独创建一个list,读操作不加锁,适合读操作较多的场景
-
【Java】ArrayList线程不安全的坑
问题复现:使用Java的steam() paralleStream(),foreach()方法向ArrayList添加数据,导致ArrayList中出...
来源: 【Java】ArrayList线程不安全的坑
世界观察:不点拍照按键也能拍照!荣耀Magic 5全新技术曝光:堪比变魔术
全球观热点:自信满满!萌娃觉得自己掌握了英语的窍门 张口让网友沉默
当前播报:电动车里什么最耗电?13类电器功率排名来了!出乎意料
当前关注:义乌市百货有限责任公司
【新要闻】饰组词语接龙_饰组词语
运算符重载
世界要闻:猛男专属 吉利几何E超吸粉特别版上市:9.98万元
全球热点评!《三体》被改编成剧本杀 三体宇宙索赔300万
热资讯!算法正在谋杀新闻 各种日报带头摆烂 十亿中国网友却为此狂欢
联想小新Pro 14天青蓝来了:13代酷睿 1TB硬盘
天天日报丨国产架构的龙芯CPU可以跑QQ了!底层重写、与x86/Arm肩并肩
当前滚动:全商汇深圳控股集团有限公司_全商汇
世界资讯:Eureka高可用集群服务端和客户端配置
今日精选:NEMU PA 1 实验报告
Spark系列 - (4) Spark任务调度
天天快资讯丨第122篇: JS函数一些基本概念
独居老人为家中热闹没装大门 多车误入院子
每日资讯:RTX 4090显卡都能用 长城850W金牌全模电源504元(每瓦0.6元)
day03-自己实现Mybatis底层机制-02
如何设计高并发项目
天天快资讯丨Android 应用接入 Firebase Crashlytics 进行崩溃分析上报
热议:Java 中 hashCode 和 equals 方法是什么?它们和 == 各有什么区别?
热门:沃尔沃XC90 T8充电版:经过最新升级后仍是首选SUV
全球新消息丨网友用AI生成《黑豹2》电影白人版海报 激怒正义人士
面向对象进阶第二天
环球视点!# 009 - 检验 (2)
热讯:邝飚
天天滚动:长度仅23.5mm:尼康尼克尔Z 26mm f/2.8饼干镜头上架
iPhone更香?调查显示近半数安卓用户考虑换苹果
最后一个武侠杂志 《今古传奇·武侠版》停刊:闭关修炼
今日快看!力压西游记、红楼梦 豆瓣9.8分:《大明王朝1566》封神国产剧
【天天快播报】python-函数
焦点热文:58.抽象数据类型
青海首次实现330千伏同塔双回线路中相导线带电消缺
男子工作期间上厕所摔伤:被判工伤
周杰伦发文谈论AI 称AI取代不了音乐创作的美感
今日快讯:86岁老人鸡骨头卡入支气管16年:部分骨头被气管黏膜包住
带货主播李佳琦进浙江一大学招美女主播:教室爆满 女生尖叫
学生点外卖评3星被商家威胁:不删除差评 让学校把你开除
linux中redis下载安装部署启动
环球视讯!21、现有网络模型的使用以及修改
环球看热讯:(数据库系统概论|王珊)第七章数据库设计-第二节:需求分析
世界速读:周鸿祎:ChatGPT迟早会产生自主意识 为人类带来毁灭危机
我国新一代载人登月飞船模型首次展出:将建造月球科研站
每日热议!委员建议:允许重大节日燃放烟花爆竹 应科学限放
吃透8图1模板,人人可以做架构
免费开源的邮件服务器搭建
天天热门:蚁群算法
每日热闻!Prometheus安装部署(主体)
【世界速看料】保时捷新能源车高架冒烟 司机:开得好好的就着了 差点被烧死
环球讯息:罗技Trophy G驾驶舱发布:兼容所有方向盘、踏板、主机和PC
百事通!网友称5千元买洗地机用2小时就坏掉:售后无门
天天速讯:十铨发布新款PCIe 5.0固态硬盘:顺序读取12000MB/s、配石墨烯散热片
当前速看:祸从天降!东北冰溜子从5楼坠落砸伤女子:北方人一定要注意
惠州普通话水平考试准考证查询
Joomla未授权访问漏洞(CVE-2023-23752)
环球头条:Go复合数据类型数组和切片
世界热点!springCloud Alibaba服务的注册与发现之eureka搭建
当前简讯:业内第三种烘干技术!石头宣布分子筛洗烘一体机H1
全国多地现“三星连珠”天象:金星、木星、弯月连成一条线
世界快讯:石头分子筛洗烘一体机H1发布:打破洗烘行业技术天花板
百度新车标外观专利获授权 造型罕见
世界观天下!小米新专利获授权:一卡多号 可节省功耗
what are ESC、BEC and UBEC ?
环球微动态丨不通过ArcGIS写Personal Geodatabase(esri mdb)
最新消息:我们喜爱的 10 种免费 SQL Server 资源
世界新消息丨ChatGPT对于普通人有什么机会和影响?
世界热消息:8成特效中国制作!《流浪地球2》豆瓣涨至8.3 超100万人评分
当前动态:38秒旋风榨汁 小熊无线多功能榨汁机34.9元大促
3000元档超香二代骁龙8旗舰!努比亚Z50 16GB+256GB狂飙版来了
《暗黑》平替?《火炬之光:无限》国服官宣5月公测
头条焦点:首个游戏版ChatGPT 网易《逆水寒》手游预计上半年推出:自研AI得分超过人类
tcl电冰箱
消息!北向资金本周净卖出41.25亿元
观天下!分布式事务和Spanner分布式数据库
8000+字,就说一个字Volatile
环球关注:ChatGPT迅速学会下棋精髓 把人类给整不会了 网友:这谁预判得了?
世界快报:长城拼了!哈弗H6 DHT-PHEV限时优惠1.5万元:仅14.48万起
全球短讯!iPhone 15标准版上了灵动岛和USB-C接口:但跟Pro版差距还是太大
《狂飙》高启兰在日本火爆出圈 网友:《柯南》妃英理本理
全球今亮点!数字孪生|可视化图表之分组柱状图
世界今日讯!测试角色在项目各阶段的项目管理tips
当前速读:【JVM】JDK7后intern方法总结
世界热讯:centos7多网口配置同网段IP解决方案
焦点快播:【Vue】vue3 元素在某区域内缩放拖拽
灵活就业交医保太亏了怎么说?交医保太亏了具体指的是什么
苹果水下操控iPhone屏幕专利获批:或万元起售的Ultra机型独享
当前信息:魅族20电池寿命稳了:1600天连续充放容量仍大于80%
【新视野】日系车再受质疑!铃木维特拉遭车主集体投诉:刹车变硬踩不动
全球快讯:女子下班途中被狗撞伤被判工伤 法院:非本人主要责任
LGV 引理
【报资讯】如何实现把多个git仓库合并为一个,并保留提交记录?
AI创作享有版权吗?
世界视讯!卖的比“老头环”快!《霍格沃茨之遗》销量破1200万
今天是世界讨厌香菜日 不爱吃竟是“天注定”:跟基因有关
测试版用户终于能“反悔”了:Win11新功能允许退回正式版系统
今日报丨果然是“应试” IIHS碰撞测试难度提高:年度获奖车型数量腰斩
海绵宝宝是一种原始的什么动物?红色海绵球是干什么用的?
正者无敌三个太太的结局是什么?正者无敌演员表介绍