Приведена реализация схемы Producer-Consumer (язык Java). class Q { int n; synchronized int get() { return n; } synchronized void put() { this.n = n; }}class Producer implements Runnable { Q q; Producer(Q q) { this.q = q; new Thread(this, "Producer").start(); } public void run() { int i = 0; while(true) { q.put(i++); } }}class Consumer implements Runnable { Q q; Consumer(Q q) { this.q = q; new Thread(this, "Consumer").start(); } public void run() { while(true) { q.get(); } }}class PC { public static void main() { Q q = new Q(); new Producer(q); new Consumer(q); }}
Какое утверждение справедливо для данной программы?
(Отметьте один правильный вариант ответа.)
Варианты ответа
программа является корректной, но результат её выполнения зависит от среды исполнения (Верный ответ)
данная программа не является корректной с точки зрения языка Java
данная программа корректна и характеризуется однозначным результатом выполнения
в данной программе не было реализовано ни одного пользовательского потока