Discuss / Java / 为啥多行赋值语句不是安全的?能否给个demo

为啥多行赋值语句不是安全的?能否给个demo

Topic source

廖老师请问怎么证明多行赋值语句不是安全的?能不能给个示例。

叫我m学长

#2 Created at ... [Delete] [Delete and Lock User]

单个赋值是原子性的,多个赋值不是。

本章开头廖神提到:当多个线程同时运行时,线程的调度由操作系统决定,程序本身无法决定。因此,任何一个线程都有可能在任何指令处被操作系统暂停,然后在某个时间段后继续执行。

我的理解是

当执行完第一个赋值操作后,此时该线程被操作系统暂停。另外一个线程开始执行时,修改了第二个赋值操作的引用,然后第二个线程也被暂停,第一个线程继续执行后继续进行第二个变量的赋值操作。结果就会造成第二个线程中的变量被第一个线程中设置的替换了。

嗯嗯,我忽略了不同操作的两个线程,以为两个线程都是“获取的两条语句”,谢谢@

__鹭岛的阳光 的解释


  • 1

Reply