@jvmchat

Страница 2448 из 2890
Роман
08.05.2018
10:43:14
ни одной

игра будет может быть на обезьяне

Quantum Harmonizer
08.05.2018
10:43:33
сколько игорей было написано на жабафх?
писать игры на UI-фреймворке?)

Роман
08.05.2018
10:43:33
а то что её будет скачивать

Google
Роман
08.05.2018
10:43:40
ставить и прочее на fx

Oleg
08.05.2018
10:43:42
На сорсфорже видел эмулятор марсианской колонии

Роман
08.05.2018
10:43:50
это извращение, но идея интересна, да и на чём ещё кодить?

Mikhail
08.05.2018
10:43:58
Никогда не понимал, зачем такое делать Разве что если фронтендеров найти не смогли
Это же с жпоинта последнего, можешь глянуть чтобы понять зачем

Alexander
08.05.2018
10:44:30
а может идею переписали на жабафх что она такая стала

Роман
08.05.2018
10:44:41
не на qt же кодить ui

Quantum Harmonizer
08.05.2018
10:45:09
а может идею переписали на жабафх что она такая стала
какая? Идея на свинге до сих пор, я думаю

Mikhail
08.05.2018
10:45:16
а может идею переписали на жабафх что она такая стала
У них же свинг со своими компонентами

А жавафх нормальная штука

Alexander
08.05.2018
10:45:46
бек на жабафх?

Evgeniy
08.05.2018
10:45:52
не увидел )

Роман
08.05.2018
10:45:58
бек? бэкенд?

ват

Google
Evgeniy
08.05.2018
10:46:18
имел ввиду что на бекенде в играх джаву юзают

Alexander
08.05.2018
10:46:29
это мы уже выяснили

Vladimir
08.05.2018
10:46:31
Это же с жпоинта последнего, можешь глянуть чтобы понять зачем
Да про это вроде и статья на хабре была, но я как-то не проникся этой идеей

Роман
08.05.2018
10:46:55
я видел как на спринге игровой сервер писали

как вы кстати относитель к функциональщине?

одни говорят это ад

другие рай

я что-то думаю что и там и там ад

"Builder-style использование методов" что это значит?

Quantum Harmonizer
08.05.2018
10:56:19
дай контекст

Alexander
08.05.2018
10:57:17
"Builder-style использование методов" что это значит?
вангую что про шаблон проектирования "builder"

Роман
08.05.2018
10:57:21
fun arrayOfMinusOnes(size: Int): IntArray { return IntArray(size).apply { fill(-1) } }

вроде понятно

но непонятно что это значит

Vladimir
08.05.2018
10:57:38
Вопрос - насколько корректно утверждение, что синхронизация решает проблему видимости?

Роман
08.05.2018
10:57:42
опять в памяти не отложится и забуду как юзать

Alexander
08.05.2018
10:58:14
но непонятно что это значит
возвращается объект, который пришел на вход.

Alexander
08.05.2018
10:58:29
и ты дальше можешь вызывать еще один метод

Vladimir
08.05.2018
10:58:44
Во всех случаях?

Google
Роман
08.05.2018
10:58:53
О_О

круто

Quantum Harmonizer
08.05.2018
10:59:13
Во всех случаях?
нет, только если используется правильно)

Alexander
08.05.2018
11:00:01
Aleksander
08.05.2018
11:00:06
Во всех случаях?
А все случаи это какие ?

Роман
08.05.2018
11:00:08
котлин да

Alexander
08.05.2018
11:00:09
убого выглядит. простите если кого обидел

Роман
08.05.2018
11:00:13
я его изучаю

в целом это функционально

можно легко подменять возвращаемый тип

Quantum Harmonizer
08.05.2018
11:00:52
Роман
08.05.2018
11:00:52
ну это одна из фич такого синтаксиса

Роман
08.05.2018
11:01:00
смотри

public static final Vobla getGoldVobla(params ...)

и тебе нужно

резко

заменить возвращаемый тип c Vobla на GoldVobla

Vladimir
08.05.2018
11:01:50
Под всеми случаями я подразумеваю утверждение: проблема видимости может быть всегда разрешена средствами синхронизации Естественно, речь не идет о том, что кто-то неправильно написал синхронизированный код, не решающий вопрос

Роман
08.05.2018
11:01:51
пока ты туда курсор поставишь

Google
Роман
08.05.2018
11:01:56
и так тысячи раз

особенно когда баг ищешь

а тут он в конце

оп Ctrl + стрекла вправо

или влево если с нижней строки

и ты у цели

и тип сразу видно

Роман
08.05.2018
11:05:04
убого выглядит. простите если кого обидел
ещё можно вим освоить тогда проблема подстановки типа уйдёт может быть

ибо поиск(поиск через вим или саму идею чтобы по быстрому подменить) может резко с самого начала страницы начаться, а у тебя куча методов свёрнутых и она(идея) тебе ещё их развернёт

в общем немного бесит

в итоге это всё равно долго

я привык кучу кода сгенерировать по-быстрому, слить в идею после того как сгенерировал кучу псевдо кода

и править сидеть чтобы выглядело огонь

и там минус если где-то забыл

Aleksander
08.05.2018
11:08:58
Точнее: я бы даже сказал - не понимаю, что ты проверяешь. Но да, после выхода из synchronize все записи в переменные будут видны в других потоках, которые прошли тот же synchronize(на том же блоке взаимного исключения)

Vladimir
08.05.2018
11:12:02
Т.е для синхронизированного блока существуют гарантии на чтение и запись, подобно тем, которые есть для volatile переменных? Изменения переменных в синхронизированном блоке обязательно записываются в память, а чтение в синхронизированном блоке осуществляется напрямую из RAM, или что-то в этом роде?

Aleksander
08.05.2018
11:16:23
Т.е для синхронизированного блока существуют гарантии на чтение и запись, подобно тем, которые есть для volatile переменных? Изменения переменных в синхронизированном блоке обязательно записываются в память, а чтение в синхронизированном блоке осуществляется напрямую из RAM, или что-то в этом роде?
1 вопрос - да. 2) Изменения всегда записываются в основную память, но, запись в блоке - инвалидирует кеш, поэтому следующее чтение в том же блоке, увидит инвалидированный кешлайн и пойдёт в память за новым значением.

Vladimir
08.05.2018
11:18:33
А как это может достигаться, если не через RAM? Если я изменил переменную в кеше на одном ЦП, но не записал в память, как тред на другом ЦП увидит изменения?

Google
Vladimir
08.05.2018
11:18:58
(При следующем чтении)

Aleksander
08.05.2018
11:19:48
Alexander
08.05.2018
11:20:44
для интеловых cpu точно гарантируется. для ARM - хз, думаю тож

Vladimir
08.05.2018
11:21:19
А как это может достигаться, если не через RAM? Если я изменил переменную в кеше на одном ЦП, но не записал в память, как тред на другом ЦП увидит изменения?
Ну по факту только так. Но лучше не полагаться на это. А если например JVM точно знает, что оба потока выполняются на том же ядре? Тогда третий поток (на другом ядре/ЦП) может ничего и не увидеть, если будет полагаться на то, что "ну там же synchronized, зачит, в RAM есть".

Ivan
08.05.2018
11:24:51
Вроде ж jvm только про happens before говорит а все остальное это уже нюансы реализации

Не?

Vladimir
08.05.2018
11:25:14
Понятно! Т.е, по сути, volatile может в подавляющем большинстве случаев быть заменено приемами синхронизации. А зачем тогда его использовать вообще? Ради выигрыша в производительности в отдельных случаях?

Ivan
08.05.2018
11:25:42
Да

Vladimir
08.05.2018
11:27:42
Понятно! Т.е, по сути, volatile может в подавляющем большинстве случаев быть заменено приемами синхронизации. А зачем тогда его использовать вообще? Ради выигрыша в производительности в отдельных случаях?
Но вообще да, если все операции над общими данными выполнять в synchronized, то всё будет ок. Но так можно быстро познакомиться с дедлоками. Да и различие в производительности может быть существенным.

Aleksander
08.05.2018
11:28:34
Volatile не гарантируют атомарности
Ну точнее как. Если есть несколько действий на переменными volatile факапит

Тут приходит на помощь synchronize

Aleksander
08.05.2018
11:29:40
Да, так как оно раскладывается в три инструкции

CAS в помощь
Это понятно

Страница 2448 из 2890