线程安全概念是在进行并发操作时很关键的点,其概念在于当多个线程交替并发执行到最后,每个线程的结果都可以达到预期结果,这个过程我们叫做线程安全的过程,下面将通过两个常见的关键字来简要如何保证线程安全。
1.Volatile关键字
volatile关键字可以保证有序性和可见性,但是它并不能保证原子性,是一种较弱的线程安全手段,但是同时它的开销也是相对较小的。
先看下面这段代码:
public class test4 {
public static int val=0;
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
int localval=val;
while (localval<5){
if (localval!=val){
System.out.println("A线程输出"+val);
localval=val;
}}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
int localval = val;
while (localval < 5){
System.out.p