@Koshkasobaka

Как сделать, чтобы потоки работали строго попеременно?

Здравствуйте. У меня есть 2 класса, один печатает только "A", другой печатает "B". Мне нужно сделать, чтобы они работали попеременно, т.е. в консоль выводилось : A B A B A B ... Чтобы не было подряд одной и той же буквы. Что я делаю не так?
public class LetterA extends Thread {
private final static Object lock = new Object();


   public LetterA() {

   }

    @Override
    public void run() {
        for (int i = 1; i <= 10; i++) {
            synchronized (lock) {
                if (i / 2 != 0) {
                    try {
                        lock.wait();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                } else System.out.print("A ");

                lock.notifyAll();
            }
        }
}
    }


в Main:
private static void printLetters() {
        LetterA letterA = new LetterA();
        LetterB letterB = new LetterB();
      

        letterA.start();
        letterB.start();
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 1
@JaktensTid
Неудобный вопрос - зачем тогда вообще паралеллизм, если код должен исполняться синхронно?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы