主题:请教关于wait()方法的问题
public class TwoThreads {
static Thread laurel, hardy;
public static void main(String[] args) {
laurel = new Thread() {
public void run() {
System.out.println("A");
try {
hardy.sleep(1000);
} catch (Exception e) {
System.out.println("B");
}
System.out.println("C");
}
};
hardy = new Thread() {
public void run() {
System.out.println("D");
try {
synchronized (laurel) {
laurel.wait();
}
} catch (Exception e) {
System.out.println("E");
}
System.out.println("F");
}
};
laurel.start();
hardy.start();
}
}
这个地方:
synchronized (laurel) {
laurel.wait();
}
} catch (Exception e) {
System.out.println("E");
到底是让laurel线程等待还是让hardy线程等待啊?如果是hardy的话为什么不起做用呢,没有用notify()方法为什么程序也能正常结束呢?
(初学者)
[em18]
static Thread laurel, hardy;
public static void main(String[] args) {
laurel = new Thread() {
public void run() {
System.out.println("A");
try {
hardy.sleep(1000);
} catch (Exception e) {
System.out.println("B");
}
System.out.println("C");
}
};
hardy = new Thread() {
public void run() {
System.out.println("D");
try {
synchronized (laurel) {
laurel.wait();
}
} catch (Exception e) {
System.out.println("E");
}
System.out.println("F");
}
};
laurel.start();
hardy.start();
}
}
这个地方:
synchronized (laurel) {
laurel.wait();
}
} catch (Exception e) {
System.out.println("E");
到底是让laurel线程等待还是让hardy线程等待啊?如果是hardy的话为什么不起做用呢,没有用notify()方法为什么程序也能正常结束呢?
(初学者)
[em18]