Hello everyone,
I would just like to ask if the following code example in the Sierra Bates
SCJP Reviewer below is correct. Is it possible for b.wait() in line 9 to wait forever if the notify() action in line 24 comes first?
1. class ThreadA {
2. public static void main(
String [] args) {
3. ThreadB b = new ThreadB();
4. b.start();
5.
6. synchronized(b) {
7. try {
8. System.out.println("Waiting for b to complete...");
9. b.wait();
10. } catch (InterruptedException e) {}
11. System.out.println("Total is: " + b.total);
12. }
13. }
14. }
15.
16. class ThreadB extends
Thread {
17. int total;
18.
19. public void run( ) {
20. synchronized(this) {
21. for(int i=0;i<100;i++) {
22. total += i;
23. }
24. notify( );
25. }
26. }
27. }
Thanks in advance.