Strange Eventually Translation

今天在看SCJP Java 6专业认证手册(附光碟)这本书的第9章执行绪的自我评量有一题:

Given:
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 {
laurel.wait();
} catch (Exception e) {
System.out.println("E");
}
System.out.println("F");

}
};
laurel.start();
hardy.start();
}
}
Which letters will eventually appear somewhere in the output? (Choose all that apply.)
A. A
B. B
C. C
D. D
E. E
F. F
G. The answer cannot be reliably determined
H. The code does not compile

中文的题意是这样的:

哪一个字母最后会出现在结果当中?(选择所有适合的。)

答案是这样的:

A, C, D, E, and F are correct. This may look like laurel and hardy are battling to cause
the other to sleep() or wait()—but that’s not the case. Since sleep() is a static
method, it affects the current thread, which is laurel (even though the method is invoked
using a reference to hardy). That’s misleading but perfectly legal, and the Thread laurel
is able to sleep with no exception, printing A and C (after at least a 1-second delay). Meanwhile
hardy tries to call laurel.wait()—but hardy has not synchronized on laurel,
so calling laurel.wait() immediately causes an IllegalMonitorStateException, and
so hardy prints D, E, and F. Although the order of the output is somewhat indeterminate
(we have no way of knowing whether A is printed before D, for example) it is guaranteed
that A, C, D, E, and F will all be printed in some order, eventually—so G is incorrect.
B, G, and H are incorrect based on the above. (Objective 4.4)

A、C、D、E、F都对,但是ㄚ琪从英文的eventually来看是‘at the end of a period of time or a series of events 最后;终于’

所以直觉地看是哪一个字母会是结果最后的?不知这样解读是否正确?但是这样子解读的话,ㄚ琪很疑惑,A或D有可能是最后的吗?好像不可能?

不知哪位大德可以协助解读的!