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