多线程并发中计算结果重复的原因

线程延时问题

多线程在多循环语句中,一条线程运行结束并改变判断的值,

但是在运行时还未更改判断的值前,又运行一条线程,两条线程同时运行线程语句,那么上一个线程未更改的值会和下一条线程相同

原因:

设每次运行两条线程,那么

线程1、线程2 -> 先后判断条件 -> 满足条件同时运行语句 -> 线程1输出语句 -> 线程2输出语句 ->线程1更改判断值 ->其他线程不通过。两个线程计算“=”
线程1、线程2 -> 先后判断条件 -> 满足条件同时运行语句 -> 线程1输出语句 -> 线程1更改判断值 -> 其他语句不通过 -> 线程2输出语句。第二个线程计算为第一个的“-1”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值