关于在同一个类中启动子线程修改公共属性的问题。

今天在做一个数据库作业的时候,用了netbeans来做一个作业,但是报了个空指针错误,搞了两个小时终于知道哪里有问题,但是还是不知道是啥问题,我另外写了一个测试程序,如果能搞清楚这个问题的话,那么我想我也就知道怎么做了,希望有哪位大哥哥小姐姐帮忙看一下,感激不尽。

public class Test {
    private static Person p;
    private void set() {
        p=new Person(null, 0);
        System.out.println("fsdaf");
    }
    public static void main(String[] args) {
        new Thread(new Runnable() {

            @Override
            public void run() {
                new Test().set();
            }

        });
        //System.out.println(p);
    }

}

这样没有打印信息,我想问的是,为什么set方法里面的打印语句不执行,还有,如果去掉main方法里面的打印注释,打印结果为null。我没有c币,来白嫖的,对不起,哈哈哈

1.你的thread都没有start,怎么可能会打印呢?
2.就算执行了start,main的打印基本上还是null(不能说绝对,但不是null的概率几乎为0),因为开了线程变成异步的了,当然是下一行的代码比新线程执行的快。

问答版主就是牛,从现在起只回论坛,不在踏入问答半步