微信公众号:路人zhang
网站救助计划

1.为阅读体验,本站无任何广告,也无任何盈利方法,站长一直在用爱发电,现濒临倒闭,希望有能力的同学能帮忙分担服务器成本


2.捐助10元及以上同学,可添加站长微信lurenzhang888,备注捐助网站倒闭后可联系站长领取本站pdf内容


3.若网站能存活下来,后续将会持续更新内容

当前位置: Java > Java并发高频面试题 > 26.在Java程序中如何保证线程的运行安全?

线程安全问题主要体现在原子性、可见性和有序性。

  • 原子性:一个或者多个操作在 CPU 执行的过程中不被中断的特性。线程切换带来的原子性问题。
  • 可见性:一个线程对共享变量的修改,另外一个线程能够立刻看到。缓存导致的可见性问题。
  • 有序性:程序执行的顺序按照代码的先后顺序执行。编译优化带来的有序性问题。

解决方法:

  • 原子性问题:可用JDK Atomic开头的原子类、synchronizedLOCK来解决
  • 可见性问题:可用synchronizedvolatileLOCK来解决
  • 有序性问题:可用Happens-Before 规则来解决

本站链接:https://www.mianshi.online如需勘误或投稿,请联系微信:lurenzhang888


点击面试手册,获取本站面试手册PDF完整版