首页 > 各位牛友,帮忙看看这个并发的结果为什么是0呀
头像
wanglaibao
编辑于 2021-01-14 17:26
+ 关注

各位牛友,帮忙看看这个并发的结果为什么是0呀

public class ThreadTest {
    private volatile static int count=0;
    private volatile static int flag=0;
    private static void add(){
        for(int i=0;i<1e7;i++){
            count=count+1;
        }
    }
    public static void main(String[] args) {
        Thread t1=new Thread(new Runnable() { @Override public void run() {
                //lock
                while(flag==1){
                    System.out.print(".");
                }
                flag=1;
                //临界区
                add();
                //unlock
                flag=0;
            }
        });
        Thread t2=new Thread(new Runnable() { @Override public void run() {
                //lock
                while(flag==1){
                    System.out.print(".");
                }
                flag=1;
                //临界区
                add();
                //unlock
                flag=0;
            }
        });
        t1.start();
        t2.start();
        System.out.println(count);
    }
}

全部评论

(2) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期精华帖

热门推荐