加了volatile之后依然线程不安全
来源:2-4 并发模拟-代码

慕虎8548721
2018-07-15
原本这是一个线程不安全的类,他的原因我想可能是因为在count读取的过程中发生的问题,所以就加了volatile,想的这样就可以保证在同一个时刻只能有一个县城操作count,保证线程安全,但是多测试了几次发现依然不是线程安全的,那么问题出在哪儿,请老师解惑,谢谢老师
写回答
1回答
-
Jimin
2018-07-15
你好,volatile只具备可见性,不具备原子性,因此单独依靠volatile是保证不了线程安全的。
课程里这一部分只是并发的一个体验,告诉大家并发场景下不做一些控制会带来线程不安全问题,导致最终结果出错。
课程后面会继续根据这个例子做线程安全的处理,volatile加入后的处理会在线程安全性那一章的可见性里具体介绍。你可以在那个章节学完后再看看这个疑问是否已经解决了。
祝你学习愉快。00
相似问题