次のプログラムの出力で混乱しています
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
プログラムは実行時にスローします。Chicks 変数 c の値は、スレッド 1 とスレッド 2 スタックで共有されませんか。私はかなりばかげた間違いを犯していることを知っていますが、かなり混乱しています。どんなポインタも役に立ちます。