![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发
文章平均质量分 83
s11show_163
这个作者很懒,什么都没留下…
展开
-
i++的线程安全问题
谁不安全?https://blog.csdn.net/huike_/article/details/78368852首先i++是不安全的,++i是安全的,这一点要从汇编角度去考虑:i++在函数压栈过程前:1,先取内存数据段i的值,存入一个临时量中;2,然后进行自加,再写入内存数据段的i中;3,等待所有参数运算完成后,最后压栈时,将保存的临时量的值进行压栈。++i在函数压栈过程前:1,直接取内存数据段的i值,进行自加,再写入内存数据段的i中;2,等待所有参数运算完成后,最后压栈时,直接取原创 2021-04-01 23:35:49 · 773 阅读 · 1 评论 -
volatile和synchronized的区别
volatile和synchronized的区别volatile和synchronized特点首先需要理解线程安全的两个方面:执行控制和内存可见。执行控制的目的是控制代码执行(顺序)及是否可以并发执行。内存可见控制的是线程执行结果在内存中对其它线程的可见性。 根据Java内存模型的实现,线程在具体执行时,会先拷贝主存数据到线程本地(CPU缓存),操作完成后再把结果从线程本地刷到主存。synchronized关键字解决的是执行控制的问题,它会阻止其它线程获取当前对象的监控锁,这样就使得当前对象中被s原创 2021-03-16 23:23:12 · 105 阅读 · 0 评论