原子性对比

来源:3-3 线程安全性-原子性-synchronized

car

2019-05-25

能说场景吗?什么是竞争激烈,说这个等于没说。

写回答

1回答

Jimin

2019-05-26

你好,原子性的根本在于多个操作之间不会有其他操作进来。我们在写一个方法时很容易遇到这样的:1、先从某处取出数据,并修改,2、然后将修改的更新回某处。单独看这一个方法是两部操作连续执行的,但实际未必如此,将这两个操作放在多线程环境下,很容易出现多个线程同时完成第一步操作,然后都去进行第二部,这时如果不做处理,每个线程都认为自己是对的,只关心用自己的结果去更新就会有问题,这就需要借助cas等来保证原子性来更新,这样才不会有线程安全问题。
这里并发的线程越多,需要做更新时出现非原子性更新的概率就会越大,这时借助cas更新时竞争就会变得更激烈,这就代表着cas执行时循环的次数会更多。

1
0

Java高并发编程,构建并发知识体系,提升面试成功率

构建完整并发与高并发知识体系,倍增高薪面试成功率!

3923 学习 · 832 问题

查看课程