首页 新闻 会员 周边

多线程安全问题

0
悬赏园豆:5 [已关闭问题] 关闭于 2019-03-20 20:15

为什么会出现如图的情况

public class Test {
    static char[] a = { '-', '-', '-', '-' };
    static char v = '*';
    public static void main(String[] args) {
        new Thread() {
            @Override
            public void run() {
                while (true) {
                        for (int i = 0; i < a.length; i++) {
                            a[i] = v;
                    }
                    v = (v == '*' ? '-' : '*');
                }
            }
        }.start();

        new Thread() {
            @Override
            public void run() {
                while (true) {
                        System.out.println(Arrays.toString(a));
                }
            }
        }.start();
    }
}

输出结果

唐某人的主页 唐某人 | 菜鸟二级 | 园豆:202
提问于:2019-03-20 19:29
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册