什么是线程安全?

/ Java / 没有评论 / 1390浏览

什么是线程安全?

先说一下,我为什么要写这篇文章!因为有位网友给我发了一篇关于AtomicInteger的文章:https://blog.csdn.net/fanrenxiang/article/details/80623884,说看不懂。我看了这篇文章,我说看不懂就对了,这篇文章的测试代码写的有问题。不用看了,虽然我知道他想表达的意思。这篇文章的阅读量也很高,所以我这里简单解释一下什么是线程安全!

如果说面试官让你谈谈线程安全?你只需要说到下面3点即可,其他的都不要扯!

线程安全性主要体现在三个方面:原子性、可见性、有序性!

线程安全

说到线程安全,你只需要说到 java 中提供了两种保证线程安全的操作。一种是 JDK 中已经提供好的 Atomic 包,他们均使用了 CAS 完成线程的原子性操作,另一个是使用锁的机制来处理线程之间的原子性。锁包括:synchronized、Lock等。

你只需要把这些知识点学会了,工资绝对不会低!

具体可以参考我前面说的 juc。

java 线程安全

关于 juc 下面的内容,我后面会一篇一篇的来写!大家也可以通过我的微信公众号,回复“jUC”关键字即可获得一套完整的JUC包内各类使用的视频教程!

最后我总结一下synchronized、Lock、Atomic 三者各自的特点。