01 public class ThreadA {
02 public static void main(String[] args) {
03 ThreadB b = new ThreadB();
04 b.start();
05 synchronized (b) {
06 try {
07 System.out.println("Waiting for b to complete...");
08 b.wait();
09 }catch (Exception e) { }
10 System.out.println("Total is: " + b.total);
11 }
12 }
13 }
14 public class ThreadB extends Thread {
15 int total;
16 public void run() {
17 synchronized (this) {
18 for(int i=0; i < 1000; i++) {
19 total += i;
20 System.out.println(total);
21 }
22 notify();
23 }
24 }
25 }
Seria isso... me confundo na hora da sincronização...
O bloco sincronizado de que classe é executado primeiro?????
Por exemplo, ta certo afirmar que b obteve o bloqueio e main entrou na sua lista de espera.... Depois quando b notificou, apartir de que lugar a thread main voltou a executar.... Do inicio do bloco sincronizado???????
Depois de wait()????
Dúvidas, dúvidas e mais dúvidas...