Более простой способ синхронизировать 2 потока в Java?

Я не хочу быть уверенным, что часть моего кода в основном потоке будет выполнена после того, как какой-то фрагмент кода будет выполнен во вторичном потоке. Вот что я получил:

    final Object lock = new Object();
    final Thread t = new Thread(new Runnable() {
        public void run() {
            synchronized(lock) {
                System.out.println("qwerty");
                lock.notify();
            }
        }
    });

    synchronized(lock) {
        t.start();
        lock.wait();
    }

    System.out.println("absolutely sure, qwerty is above");
  1. Это правильное решение?
  2. Есть более короткие способы сделать то же самое?
6
задан Andrey Agibalov 12 August 2011 в 15:49
поделиться