深入讨论一下java的多线程是如何访问成员变量的

 我来答
司马刀剑
高粉答主

2018-06-27 · 每个回答都超有意思的
知道顶级答主
回答量:4.6万
采纳率:93%
帮助的人:7548万
展开全部
这很正常啊
SystemOut和num--不是原子操作啊。在某一时刻,num=8,线程1SystemOut:8,然后被中断,执行线程2,也是SystemOut:8,然后又被中断执行线程3,再线程4,这时候4个线程都输出了8,最后回到线程1执行num--。
即使是一条语句,也不能保证是原子操作,除非调用的对象说明是线程安全的,或者使用锁、队列,否则都不能保证并发的安全。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式