База ответов ИНТУИТ

Параллельные и распределенные вычисления

<<- Назад к вопросам

Приведена реализация очереди (язык Java). Методы doPut и doTake реализованы в классе BaseBoundedBuffer.
public class WaitNotifyQueue <T> extends BaseBoundedBuffer <T> {    public WaitNotifyQueue(int size) {        super(size);    }    public synchronized void put(T v) throws InterruptedException {        while (isFull()) {            wait ();        }        doPut(v);        notifyAll ();    }    public synchronized T take() throws InterruptedException {        while (isEmpty()) {            wait();        }        T v = doTake ();        notifyAll ();        return v;    }}            
Какие функции несет на себе метод wait в данной программе?

(Ответ считается верным, если отмечены все правильные варианты ответов.)

Варианты ответа
освобождение соответствующей критической секции для возможности выполнения другого синхронизированного метода класса WaitNotifyQueue (Верный ответ)
завершение работы потока исполнения для данного экземпляра класса WaitNotifyQueue
приостановка работы потока потока исполнения (Верный ответ)
ожидание наступления соответствующего события для возобновления работы потока исполнения (Верный ответ)
Похожие вопросы
Приведена реализация схемы Producer-Consumer (язык Java).
class Q {    int n;    synchronized int get() {        return n;    }    synchronized void put() {        this.n = n;    }}class Producer {    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 {    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);    }}            
Какие утверждения справедливы для данной программы?
Приведена реализация схемы 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);    }}            
Какое утверждение справедливо для данной программы?
Для чего предназначен метод notifyAll (язык Java)?
Метод isAlive (язык Java)
Метод join (язык Java)
Метод sleep (язык Java)
Для чего предназначен метод notify (язык Java)?
Метод run (язык Java)
В чем особенность примитива Condition для условной синхронизации (язык Java)?
Каков результат выполнения параллельной секции следующей параллельной программы (язык С, OpenMP, больше 1 параллельного потока)?
#include >omp.h<#include >stdio.h<int main(int argc, char **argv) {    #pragma omp parallel    printf("Hi!\n");    printf("Bye!\n");    return 0;}