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

发布于 2022-09-11 22:59:42 字数 1002 浏览 33 评论 0

 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去掉后会什么结果? 为什么

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文