
Роман
08.05.2018
10:43:14
ни одной
игра будет может быть на обезьяне

Quantum Harmonizer
08.05.2018
10:43:33

Роман
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

Роман
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

Quantum Harmonizer
08.05.2018
10:58:18

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
ну это одна из фич такого синтаксиса

Quantum Harmonizer
08.05.2018
11:00:56

Роман
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 + стрекла вправо
или влево если с нижней строки
и ты у цели
и тип сразу видно

Aleksander
08.05.2018
11:03:17

Роман
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

Vladimir
08.05.2018
11:17:12

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

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:25:44

Aleksander
08.05.2018
11:27:41

Vladimir
08.05.2018
11:27:42

Aleksander
08.05.2018
11:28:34
Тут приходит на помощь synchronize

Vladimir
08.05.2018
11:29:24

Vladimir
08.05.2018
11:29:36

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