Size: a a a

2020 December 14

AA

Albert Abdullin in learn.java
awawa
Ну я предполагал, что в программе всего 3 потока. То есть, когда поток А вызывает lock, то он первый и единственный, кто претендует на вход в критический участок, почему он тогда вообще должен ждать? К тому же ранее в книге обсуждались first-come-first-served, то есть по идее опять таки раньше кто пришел раньше, того и тапки.

Хотя для этой конкретной очереди свойство first-come-first-served не указано, хм. Тогда схема вообще по сути не понятно зачем нарисована.

В любом случае, спасибо)
Про тапки - такое работает, если замок свободный
источник

a

awawa in learn.java
Albert Abdullin
Про тапки - такое работает, если замок свободный
Да, действительно, разобрался. Используемый лок не гарантирует порядок без опции fairness. Но автор книжки об этом, конечно, решил не рассказывать. Пришлось топать в документацию.
источник

AA

Albert Abdullin in learn.java
awawa
Да, действительно, разобрался. Используемый лок не гарантирует порядок без опции fairness. Но автор книжки об этом, конечно, решил не рассказывать. Пришлось топать в документацию.
Есть хорошая книга от Брайана Гетца. Java concurrency in practice. Но я ее всю не смог осилить. Мало опыта. Часто не понимал о чем он пишет. Но основы заложил неплохие + курс от hyperskills
источник

a

awawa in learn.java
Albert Abdullin
Есть хорошая книга от Брайана Гетца. Java concurrency in practice. Но я ее всю не смог осилить. Мало опыта. Часто не понимал о чем он пишет. Но основы заложил неплохие + курс от hyperskills
Спасибо, приму во внимание)
источник

S

Sergey in learn.java
Привет!

Подскажите, пожалуйста. В map хранится набор разных Exception. Как бросить один из них по вызову функции? Надо ли копировать этот Exception или как поступить?
источник

S

Sergey in learn.java
Если я могу вызвать функцию, например, дважды для одного excpeption
источник

S

Sergey in learn.java
И в принципе можно ли одно исключение кидать в разных местах по вызову функции? Не может ли быть такое, что у этого исключения в одном вызове, что-нибудь подменять, а в другом подмененное и полетит
источник

DK

Dmtr Klkv in learn.java
Вообще сложно понять что вы имеете ввиду. Но если вы кидаете исключение, то ключевое слово new создает новый инстанс, то есть не ясно что имеется ввиду под "подменять в одном вызове".
источник

DK

Dmtr Klkv in learn.java
throw new IllegalArgumentException например.
источник

GI

Grigorij I. in learn.java
да и зачем оно в мапе
источник

S

Sergey in learn.java
Dmtr Klkv
Вообще сложно понять что вы имеете ввиду. Но если вы кидаете исключение, то ключевое слово new создает новый инстанс, то есть не ясно что имеется ввиду под "подменять в одном вызове".
Простите, сложно описал.

Ситуация такая:

Есть hashmap, где по строковому ключу храниться конкретный экземпляр с исключением.

Например:

"sun" -> illegalexception("this is sun")
"moon" -> null pointer exception(this is moon)
...

Дальше есть фунция

throwException(String key){
Exception e = hashmap.get(key);
if (e != null){
throw e;
}

}
источник

S

Sergey in learn.java
Здесь такой формат допускается?
источник

S

Sergey in learn.java
Что просто e бросаю?
источник

DD

Dmitry Dmitry in learn.java
как то сложно
источник

S

Sergey in learn.java
Даа, но делаю так, так как это костыль((
источник

S

Sergey in learn.java
И пытаюсь понять, как быть с e
источник

DK

Dmtr Klkv in learn.java
А как эта функция применяется? Нельзя вместо ее вызова кидать нужный эксепшен?

If (s = "moon") {
  throw new IllegalArgumentException("this is sun");
}
источник

S

Sergey in learn.java
Dmtr Klkv
А как эта функция применяется? Нельзя вместо ее вызова кидать нужный эксепшен?

If (s = "moon") {
  throw new IllegalArgumentException("this is sun");
}
Не получается(( Неизвестно какой exception будет. В мапе может оказаться другой эксепшион(( Зависит от ситуации
источник

S

Sergey in learn.java
Элементы то добавляются, то удаляются(
источник

ZE

Zhanibek Ergaliev in learn.java
Всем привет, не давно начал учить java, Кто может подсказать из-за чего ошибка?
источник