Кто сможет подсказать, как в данном коде сделать так- чтобы поток B вначале дождался выполнения потока А, а после вывел результат работы цикла? Не меняя местами потоки. У меня получилось только если усыпить ненадолго поток B. Возможно это осуществить с методом yield?
public class Solution {

 static    int z=0;
static {
    new B();
    new A();

}
    public static void main(String[] args)  {
    }
}
class A extends Thread {
    public A() {
     this.start();
    }

    @Override
    public void run() {

        for (int i = 0; i < 10000; i++) {
            Solution.z++;
        }
    }

}
 class B extends Thread{
     public B() {
         this.start();
     }


     @Override
    public void run() {
         System.out.println(Solution.z);
    }
}