这道关于线程的程序执行结果是什么??

 public  static Tuser  user = new Tuser();
    public static void main(String[] args) throws InterruptedException {
        new Thread(
                new Runnable(){
                    public void run(){
                        while(true){
                            String s = get();
                            if (user.getUsername().equals("hehe")) {
                                System.out.println("success");
                                //break;
                            }
                        }
                    }
                }
        ).start();
        Thread.sleep(1000);
        new Thread(new Runnable(){
            @Override
            public void run(){
                user.setUsername("hehe");
                user=null;
            }
        }).start();
    }
    public static synchronized   String get(){
        return user.getUsername();
    }
 这个代码执行后的结果是什么,为什么会出现这样的结果,如果把get方法的synchronized去掉后会什么结果? 为什么
阅读 765
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题