【线程】并发的三大特性

【线程】并发的三大特性,第1张

线程】并发的三大特性

三大特性为:原子性,可见性,有序性

原子性

一个或者多个 *** 作,也么全部执行,要么全部不执行,这个 *** 作在cpu中不可以中途暂停然后再调度,即不能被中断 *** 作

例子

比如i++就不是线程安全的

因为i++在执行时分为四个步骤:

        1.将i从主存读到工作内存的副本中

        2.+1运算

        3.将结果写入工作内存

        4.将工作内存的值刷回主存(什么时候刷入由 *** 作系统决定,是不确定的)

在保证原子性的前提下,只能保证前三步一起执行,但是不能保证第4步顺利执行

可见性

指当一个线程修改了共享变量之后,其他线程能够立即看见这个修改

有序性 

有序性是指程序指令按照预期的顺序执行而非乱序执行,也就是说,虚拟机在进行代码编译时,对于那些改变顺序之后不会对最终结果造成影响的代码,虚拟机不一定会按照我们写的代码的顺序来执行,有可能将他们冲排序,实际上,对于有些带啊吗进行重排序之后,虽然对变量的值没有造成影响,但有可能出现线程安全问题

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5712692.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存