我对以下程序的输出感到困惑
public class ChicksYack implements Runnable {
Chicks c ;
public static void main(String[] args){
new ChicksYack().go();
}
void go(){
c= new Chicks();
new Thread(new ChicksYack()).start();
new Thread(new ChicksYack()).start();
}
public void run() {
c.yack(Thread.currentThread().getId());
}
}
class Chicks{
synchronized void yack(long id){
for(int x = 1 ; x < 3 ; x++){
System.out.print(id + " ");
Thread.yield();
}
}
}
NullPointerException
程序在运行时抛出。小鸡变量 c 的值是否不会在线程 1 和线程 2 堆栈上共享。我知道我犯了一个非常愚蠢的错误,但很困惑。任何指针都会有所帮助。