Каким будет результат работы следующего кода? public abstract class SomeClass implements Runnable{ public 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[]) { final SomeClass c = new SomeClass() { public void run() { lock(); } }; final SomeClass c1 = new SomeClass() { public void run() { unlock(); c.notifyThread(); } }; new Thread(c).start(); new Thread(c1).start(); } }
(Отметьте один правильный вариант ответа.)
Варианты ответа
программа завершит работу, на консоли появится 12
программа не завершит работу, на консоли ничего не появится
результат трудно предугадать
программа завершит работу, на консоли появится 21(Верный ответ)
программа не завершит работу, на консоли появится 1