Каким будет результат работы следующего кода? public abstract class SomeClass implements Runnable{ private Object lock = new Object(); public void lock() { synchronized (lock) { try { lock.wait(); System.out.print("1"); } catch (InterruptedException e) {} } } public void notifyThread() { synchronized (lock) { lock.notify(); } } public void unlock() { synchronized (lock) { lock.notify(); System.out.print("2"); } } public static void main(String s[]) { Thread t = new Thread(new SomeClass() { public void run() { lock(); try { Thread.sleep(1000); } catch (InterruptedException e) {} notifyThread(); } }); t.start(); Thread t1 = new Thread(new SomeClass() { public void run() { unlock(); } }); t1.start(); } }
(Отметьте один правильный вариант ответа.)
Варианты ответа
программа не завершит работу, на консоли появится 21
программа не завершит работу, на консоли появится 1
результат трудно предугадать
программа не завершит работу, на консоли появится 2(Верный ответ)
программа не завершит работу, на консоли появится 12
программа не завершит работу, на консоли ничего не появится