Size: a a a

2020 June 02

l

lem0nify in learn.java
Quantum Harmonizer
Блокирует. Поэтому и нужен ScheduledExecutorService.
А там точно под крышкой всё лучше, чем у Timer?
источник

QH

Quantum Harmonizer in learn.java
lem0nify
А там точно под крышкой всё лучше, чем у Timer?
да)
источник

QH

Quantum Harmonizer in learn.java
там куча ансейфа и чёрной магии. Всё топ)
источник

l

lem0nify in learn.java
Атлищна. Пошёл читать.)
источник

l

lem0nify in learn.java
@Harmonizr Я правильно понимаю, что основной недостаток обычных тредов, по сравнению с SheduledExecutor, для моей задачи заключается в том, что создание потока это системная операция и выполняется слишком долго?
То есть, если я просто внутри каждого инстанса игры буду делать так: Executors.newSingleThreadSheduledExecutor().shedule( . . . ) — то новый поток всё равно будет создаваться для каждого инстанса, и это мало чем будет отличаться от решения с new Thread, и по-хорошему нужно создавать один общий SheduledExecutor где-то снаружи и передавать его во все инстансы, чтобы они с ним, единственным, работали?
источник

QH

Quantum Harmonizer in learn.java
lem0nify
@Harmonizr Я правильно понимаю, что основной недостаток обычных тредов, по сравнению с SheduledExecutor, для моей задачи заключается в том, что создание потока это системная операция и выполняется слишком долго?
То есть, если я просто внутри каждого инстанса игры буду делать так: Executors.newSingleThreadSheduledExecutor().shedule( . . . ) — то новый поток всё равно будет создаваться для каждого инстанса, и это мало чем будет отличаться от решения с new Thread, и по-хорошему нужно создавать один общий SheduledExecutor где-то снаружи и передавать его во все инстансы, чтобы они с ним, единственным, работали?
Да.
источник

l

lem0nify in learn.java
Славно. А какую роль в таком случае играет количество потоков, на которые будет он пахать?
источник

QH

Quantum Harmonizer in learn.java
lem0nify
Славно. А какую роль в таком случае играет количество потоков, на которые будет он пахать?
Потоки занимают память. А постановка потока на исполнение занимает время. Если потоков больше, чем ядер, их нужно чередовать, это дополнительно стоит времени.
источник

l

lem0nify in learn.java
Ну а конкретно в рамках моей задачи, как считаете, какая разница будет между однопоточным экзекьютором и тредпулом по потоку на ядро, и как лучше сделать? 🤔
источник

М

Михаил in learn.java
Пользователь загружает аудио в форму для видео. Какое исключение использовать?
Runtime выглядит плохой идеей, так как нужно как-то настоять на том, что контроллер должен обработать это исключение и выдать соотвествующее сообщение об ошибке в морду.
источник

ИВ

Илья Высоцкий... in learn.java
а что можно запихать в dbProperties в Resources? юзер пассворд, а юрл и драйвер? И как туда обычно кладется? все в один текст файл или несколько сделать?
источник

РХ

Ринат Харисов... in learn.java
Михаил
Пользователь загружает аудио в форму для видео. Какое исключение использовать?
Runtime выглядит плохой идеей, так как нужно как-то настоять на том, что контроллер должен обработать это исключение и выдать соотвествующее сообщение об ошибке в морду.
как насчет статус кода 400?
источник

М

Михаил in learn.java
Ринат Харисов
как насчет статус кода 400?
Есть вероятность что исключения придуманы для того, чтобы не возвращать инты.
источник

РХ

Ринат Харисов... in learn.java
дык в любом случае ваш контроллер вернет "инты", вопрос в том какие "инты"
источник

l

lem0nify in learn.java
Михаил
Пользователь загружает аудио в форму для видео. Какое исключение использовать?
Runtime выглядит плохой идеей, так как нужно как-то настоять на том, что контроллер должен обработать это исключение и выдать соотвествующее сообщение об ошибке в морду.
InvalidObjectException ?
источник

DC

Denis Chikanov in learn.java
Михаил
Пользователь загружает аудио в форму для видео. Какое исключение использовать?
Runtime выглядит плохой идеей, так как нужно как-то настоять на том, что контроллер должен обработать это исключение и выдать соотвествующее сообщение об ошибке в морду.
Надо настоять - напишите тесты, проверяющие поведение контроллера или сервиса в целом. Куда полезнее, чем думать, подходят ли тут рантайм эксепшны.
источник

DC

Denis Chikanov in learn.java
Если используемая библиотека/фреймворк не предлагают свои готовые решения, написать свой эксепшн-обертку для типовой ошибки HTTP - ну вообще не беда
источник

М

Михаил in learn.java
Denis Chikanov
Если используемая библиотека/фреймворк не предлагают свои готовые решения, написать свой эксепшн-обертку для типовой ошибки HTTP - ну вообще не беда
Да, все верно. Думал что это вполне стандартное исключение, которое не смог нагуглить (все что попадалось было рантайм), поэто решил спросить у сообщества.
источник

s

some guy in learn.java
Михаил
Пользователь загружает аудио в форму для видео. Какое исключение использовать?
Runtime выглядит плохой идеей, так как нужно как-то настоять на том, что контроллер должен обработать это исключение и выдать соотвествующее сообщение об ошибке в морду.
Пишется отдельный exception т.к. вы ожидаете подобное поведение. Пишется HTTP handler для этой ошибки (если не лень, можно что-то общее написать под вообще все ошибки) и возвращается 400 статус с body json в котором будет ошибка (текст уж сами решите как туда пихать, вариантов куча)
источник

М

Михаил in learn.java
lem0nify
InvalidObjectException ?
Да, вариант. Но думал что найдется что-то красивее. В C# есть FileFormatException, правда не знаю рантайм он или какой.
источник