考慮下面的代碼:空指針異常和線程
class Chicks {
synchronized void yack(long id) {
for(int x = 1; x < 3; x++) {
System.out.print(id + " ");
Thread.yield();
}
}
}
public class ChicksYack implements Runnable {
Chicks c; //.....(1)
public static void main(String[] args) {
new ChicksYack().go();
}
void go() {
c = new Chicks(); //........(2)
new Thread(new ChicksYack()).start();
new Thread(new ChicksYack()).start();
}
public void run() {
c.yack(Thread.currentThread().getId());
}
}
當我運行這段代碼,我得到的是我還沒有初始化的變量c一個空指針異常。但是,我沒有把它初始化爲...(2)?我很難得到這個概念。在這個例外中,線程是否有一部分可以發揮作用?
哪條線給NPE? –