java多线程-happendBefore-创新互联
指令重排:代码执行顺序与预期不一致
目的:提高性能
下例代码,结束时可能打印指令重排:**
public class tt {
private static int a=0;
private static boolean flag=false;
public static void main(String[]args) throws InterruptedException
{
//线程1更改数据
Thread t1=new Thread(()->{
a=1;
flag=true;
});
//线程2读取数据
Thread t2=new Thread(()->{
if(flag)
{
a*=1;
}
if(a==0)
{
System.out.println("发生了指令重排"+a);
}
});
t1.start();
t2.start();
t1.join();
t2.join();
}
}
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网站标题:java多线程-happendBefore-创新互联
转载注明:http://azwzsj.com/article/dpephi.html