A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一只文字 中级黑马   /  2013-8-8 09:24  /  1765 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我的一个线程子类的方法是这样的
public synchronized void test(User user,String name){
       this.wait(1000L);
       user.setName(this.getName());//这个getName()是父类的 ,Name由构造器决定
       System.out.println("这是线程"+user.getName());
}
我生成了4个线程,分别命名为1,2,3,4,它们都指向同一个user。run里也只有这方法,运行结果是:有时是 几个都是这是线程2(或其他),也就是说user.setName(this.getName())和 System.out.println()分开了。为什么?我用 synchronized (user){}就没有这情况

5 个回复

倒序浏览
您需要登录后才可以回帖 登录 | 加入黑马