Size: a a a

2021 January 28

V

Vladimir in learn.java
Eric
понимаю что вы хотите объяснить, но не понимаю как это сделать(
как-то глупо выходит
т.к. абсолютно не понятно что этот код делает помочь вряд ли получится) что по задумке делают Signal_In и Signal_Out?
источник

E

Eric in learn.java
Vladimir
т.к. абсолютно не понятно что этот код делает помочь вряд ли получится) что по задумке делают Signal_In и Signal_Out?
Signal_In – сигнал про завершение ввода
Signal_Out – сигнал про завершение решения примера
источник

V

Vladimir in learn.java
Eric
Signal_In – сигнал про завершение ввода
Signal_Out – сигнал про завершение решения примера
не особо лучше) почему они оба оповещают все потоки (notifyAll), которые ждут на мониторе?
источник

E

Eric in learn.java
лучше просто notify использовать?
источник

V

Vladimir in learn.java
Eric
лучше просто notify использовать?
просто notify не поможет.
правильно я понимаю идея в том что все потоки кроме одного блокируются в Wait_In, и четвертый поток выполняет все и должен разбудить другой поток в Signal_Out?
источник

E

Eric in learn.java
да
источник

E

Eric in learn.java
у меня есть таблица по которой я хотел сделать этот код, но почему-то не делается так
источник

E

Eric in learn.java
источник

E

Eric in learn.java
а это к чему?
источник

V

Vladimir in learn.java
Eric
да
ок. notifyAll разбудит все потоки, которые ждут в Signal_Out т.е. в текущей реализации может получиться, что например 2 потока будут ждать в wait_in, а третий в signal_in разбудит их и будет мясо, т.к. они все на одном мониторе ждут.
источник

А

Алексей in learn.java
Интуитивно же все более менее понятно на украинском
источник

E

Eric in learn.java
очікувати...
источник

А

Анна in learn.java
че происходит?)
источник

А

Анна in learn.java
без четкого тз получится хз
источник

E

Eric in learn.java
Vladimir
ок. notifyAll разбудит все потоки, которые ждут в Signal_Out т.е. в текущей реализации может получиться, что например 2 потока будут ждать в wait_in, а третий в signal_in разбудит их и будет мясо, т.к. они все на одном мониторе ждут.
и как мне сделать чтобы этого не было и они работали правильно?

я что-то не юзанул?
источник

E

Eric in learn.java
просто было бы легче если бы я мог управлять нотифаями и тд
чтобы знать кому какой сигнал я даю
источник

AK

Artur Kopytin in learn.java
Да , это с презентации учителя
источник

V

Vladimir in learn.java
Eric
просто было бы легче если бы я мог управлять нотифаями и тд
чтобы знать кому какой сигнал я даю
так не надо думать это плохой подход)
в целом почти правильно.
еще вопрос: все потоки должны ждать в wait_in конца ввода и в wait_out окончания вычислений?
источник

V

Vladimir in learn.java
если так то проблема в if (F1 < 3) wait() и в if (F3 < 4) wait(), т.к. например поток заблокируется при F1=1, но получит notify и не проверит, выполняется условие или нет, а должен) т.е. например while(F1<3){wait();} проверит условие и будет ждать следующего notify
источник

E

Eric in learn.java
вот это ты волшебник
источник