8.
关键是让它们拥有的监视器是同一对象,B方法前加synchronized,A方法的代码块部分加上synchronized(this)。
9.
public class Calculate extends Thread {
public volatile boolean finished = false;
public void run() {
long count = 0;
while (true) {
count++;
if (finished) {
System.out.println(count);
break;
}
}
}
public static void main(String[] args) {
CalculatePrimes calculator = new CalculatePrimes();
calculator.start();
try {
Thread.sleep(10 * 1000);
} catch (InterruptedException e) {
// fall through
}
calculator.finished = true;
}
}