这些类在同一个文件中定义。输出是什么?(1个正确答案)
class Job extends Thread {
private Integer number = 0;
public void run() {
for (int i = 1; i < 1000000; i++) {
number++;
}
}
public Integer getNumber() {
return number;
}
}
public class Test {
public static void main(String[] args)
throws InterruptedException {
Job thread = new Job();
thread.start();
synchronized (thread) {
thread.wait();
}
System.out.println(thread.getNumber());
}
}
- 它打印 0。
- 它打印 999999。
- 不保证输出为上述任何一种。
输出是999999
。我知道当一个线程完成它的run()
方法时,它会终止,并且线程的所有锁都会被释放。但是,在这个练习中,它使用 Thread 对象作为锁,不应该将其视为普通对象吗?我的意思是它不是由线程拥有的锁,thread
而是由主线程拥有的。