在Java程序中怎么保证多线程的运行安全?
发布时间:2022-09-20 16:04:04
发布人:wjy
出现线程安全问题的原因一般都是三个原因:
1、 线程切换带来的原子性问题
解决办法:使用多线程之间同步synchronized或使用锁(lock)。
2、 缓存导致的可见性问题
解决办法:synchronized、volatile、LOCK,可以解决可见性问题
3、 编译优化带来的有序性问题
解决办法:Happens-Before 规则可以解决有序性问题