ITPub博客

首页 > 应用开发 > > java 多线程-happendBefore

java 多线程-happendBefore

作者:supersea 时间:2019-09-18 14:31:00 0 删除 编辑

指令重排:代码执行顺序与预期不一致

目的:提高性能

下例代码,结束时可能打印指令重排:**

public class tt {

privatestaticinta=0;privatestaticboolean flag=false;publicstaticvoidmain(String[]args) throws InterruptedException{//线程1更改数据Thread t1=newThread(()->{ a=1; flag=true; });//线程2读取数据Thread t2=newThread(()->{if(flag) { a*=1; }if(a==0) { System.out.println("发生了指令重排"+a); } }); t1.start(); t2.start(); t1.join(); t2.join();}}

©著作权归作者所有:来自51CTO博客作者wx5d21d5e6e5ab1的原创作品

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2650/viewspace-3165467/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-16

  • 博文量
    90
  • 访问量
    799