@jvmchat

Страница 2449 из 2890
Ivan
08.05.2018
11:30:24
Как пример

Vladimir
08.05.2018
11:30:56
Запись в long на x86
Это атомарно для volatile

Ivan
08.05.2018
11:31:04
Ну это как раз присер

Пример

Google
Ivan
08.05.2018
11:31:13
Volatilr

Vladimir
08.05.2018
11:31:14
об этом за вас уже подумали. https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%B3%D0%B5%D1%80%D0%B5%D0%BD%D1%82%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%D0%BA%D1%8D%D1%88%D0%B0
Т.е это нечто вроде метода синхронизации общего ресурса между кешами?

Ivan
08.05.2018
11:31:16
Volatile

Alexander
08.05.2018
11:32:14
Т.е это нечто вроде метода синхронизации общего ресурса между кешами?
угу, так что volatile - вовсе не означает что значение переменной возьмется из RAM, а не из кеша

но оно будет одинаковым для всех ядер

Vladimir
08.05.2018
11:34:57
Понятно. Всем спасибо

Роман
08.05.2018
11:36:19
Посоветуйте музыку чтоб проснуться

трындец втыкал в строку кода 15 минут

Egor
08.05.2018
11:37:28
Caravan Palace

Роман
08.05.2018
11:38:38
норм

Alexander
08.05.2018
11:57:59
CAS в помощь
расскажи мне про кас например на три лонга

Google
Aleksander
08.05.2018
12:01:14
расскажи мне про кас например на три лонга
переменная на которой делается кас в цикле(аля лок) и запись в 3 volatile лонга =))))

Marat
08.05.2018
12:03:11
переменная на которой делается кас в цикле(аля лок) и запись в 3 volatile лонга =))))
запись в лонги описываем одним дескриптором, операция записи каждого лонга берет дескриптор и касом пишет в соответствующий лонг

Aleksander
08.05.2018
12:04:06
бесконечно в цикле, пока кас не сработает тыркаемся

Alexander
08.05.2018
12:04:42
давай пример кода, поговорим предметно

Marat
08.05.2018
12:04:59
это же основы многопоточности - как синхронизировать запись комплексного объекта, которую можно разбить на несколько атомарных операций записи

Alexander
08.05.2018
12:05:00
когда там кас сработать должен, как он это сделать должен

единственное примерение каса тут сделать мьютекс на касе, но это такое

Aleksander
08.05.2018
12:05:54
давай пример кода, поговорим предметно
Будет время на досуге - напишу.

Alexander
08.05.2018
12:05:56
либо три раза касить эти лонги с откатом, в таком случае проще вверх ногами как мишки гамми

Marat
08.05.2018
12:06:20
на жпоинте опять же был доклад, в котором касалась эта тема (там было про обновление балансов двух счетов при проведении транзакции)

Alexander
08.05.2018
12:06:37
что бы все другие не увидели поломанные данные

простой спобоб иммутабельности поинта не рассмативаем в виду того, что хотим занятся сексом с тремя касами одновременно

Marat
08.05.2018
12:07:54
вечером набросаю код, я ща на работе, ок?

Vladimir
08.05.2018
12:07:58
совсем разные механизмы же, волатайл про видимость, а синхронизация про синхронизацию конечно же
речь шла не о разнице между этими механизмами, а о том, может ли синхронизация решать проблему видимости

Alexander
08.05.2018
12:08:06
может

но кто-то тут приплел касы

Vladimir
08.05.2018
12:09:02
касы - это что?

Google
Alexander
08.05.2018
12:09:23
compare-and-set/compare-and-swap

Vladimir
08.05.2018
12:09:25
но кто-то тут приплел касы
Я говорил, что CAS поможет во всех ситуациях? Речь шла о нескольких действиях, количество переменных не уточнялось.

Marat
08.05.2018
12:09:38
касы - это что?
атомарный compare-and-swap/set

Alexander
08.05.2018
12:10:51
Я говорил, что CAS поможет во всех ситуациях? Речь шла о нескольких действиях, количество переменных не уточнялось.
ты не упомянул ограничения, несколько действий - опять же, каких действий и что у них там с видимостью

Ruslan
08.05.2018
12:11:03
речь шла не о разнице между этими механизмами, а о том, может ли синхронизация решать проблему видимости
видимость изменений гарантируется когда у тебя можду стейтментами есть happens before, выход/заход в синхронайзед секцию один из вариантов получить happens before, точно так же volatile read/write является happens before

Alexander
08.05.2018
12:11:40
ну и тут следует вспомнить про контешн и понять, что кас на хай контеншене - это такое себе занятие, не всегда благородное

Alexander
08.05.2018
12:12:13
Alexander
08.05.2018
12:12:22
на point

Ruslan
08.05.2018
12:12:29
ну так впрос был про три лонга

а не про как закасить обьект

Alexander
08.05.2018
12:12:38
на point
нельзя

Pavel
08.05.2018
12:12:44
Volatile не гарантируют атомарности
Тут нужно уточнить атомаоность чего. Атомарность ссылки на объект - гарантирует

Pavel
08.05.2018
12:13:54
Alexander
08.05.2018
12:14:13
Почему 32битную?
а как у тебя в 64 битах может не атомарно записаться 64 бита?

Vladimir
08.05.2018
12:14:42
ты не упомянул ограничения, несколько действий - опять же, каких действий и что у них там с видимостью
Да, не упомянул. Я просто упомянул о такой штуке, которая позволяет во многих ситуациях решить проблему многопоточного доступа к какому-то состоянию.

Ruslan
08.05.2018
12:15:16
а как у тебя в 64 битах может не атомарно записаться 64 бита?
так вроде же утверждают что атомарно.....

Pavel
08.05.2018
12:16:41
а как у тебя в 64 битах может не атомарно записаться 64 бита?
Если у тебя инкремент волатайл инта, то атомарность этого действия не гарантируется

Ибо это как уже было сказано, 3 инструкции

Google
Vladimir
08.05.2018
12:18:31
Если у тебя инкремент волатайл инта, то атомарность этого действия не гарантируется
Я думаю, под записью имелась в виду запись, а не инкремент и прочее, что как одна операция выглядит только в исходниках.

Alexander
08.05.2018
12:19:08
а мы про видимость, тут локи-локи

Alpha
08.05.2018
12:48:34
возвращается объект, который пришел на вход.
А не объект того же типа что пришёл на вход?

Alexander
08.05.2018
12:49:24
> возвращается объект, который пришел на вход. > А не объект того же типа что пришёл на вход? ?

имеете в виду что новый объект возвращается ? ну может быть и это имелось в виду

в классическом билдере, который шаблон проектирования - там возвращается this. а из изначальной формулировки автора вопрос "Builder-style использование методов" - может быть имелось в виду что можно цепочку из методов построить.

Evgeniy
08.05.2018
12:54:59
совсем разные механизмы же, волатайл про видимость, а синхронизация про синхронизацию конечно же
синхронизация тоже про видимость ,если освобождение 1 и тогоже монитора

Alexander
08.05.2018
12:55:24
да

guga
08.05.2018
12:59:49
снова @ashofthedream пугает детей кровавым хайлоадом в геймдеве

не хватает только @krivdathetriewe

стриминга данных на акке

Marat
08.05.2018
13:01:08
Это на какой архитектуре / ос?
x86, ось любая, работающая в защищенном режиме

Митко Соловец?
08.05.2018
13:01:11
а как же стэк БОГОВ?

mongo+scala+akka

классика

Google
guga
08.05.2018
13:02:37
mongo+scala+akka
ну для этого нужен @capdev

Митко Соловец?
08.05.2018
13:03:09
opa builder style

Pavel
08.05.2018
13:03:13
Митко Соловец?
08.05.2018
13:03:20
op().op().op()

opa builder style

+spring
ну это если хочется высочайшей производительности

guga
08.05.2018
13:03:56
+spring
не, спринговый репозиторий для моно, уж лучше я просто стоковый драйвер поюзаю

Митко Соловец?
08.05.2018
13:04:02
если умеренной достаточно, можно взять вертикс

для малонагруженных проектов он подойдет

guga
08.05.2018
13:04:30
не, спринговый репозиторий для моно, уж лучше я просто стоковый драйвер поюзаю
а ещё лучше, я ничего юзать не буду и продолжу пинать хуи

Митко Соловец?
08.05.2018
13:05:00
киньте в меня камень, если вертикс плох для малонагруженных проектов

Pavel
08.05.2018
13:05:09
если умеренной достаточно, можно взять вертикс
Да, если меньше миллиарда запросов в день прилетает то сойдёт и вертикс

Sergey
08.05.2018
13:05:31
Троллинг удался

Митко Соловец?
08.05.2018
13:05:46
Да, если меньше миллиарда запросов в день прилетает то сойдёт и вертикс
спринг кстати, при определенных погодных условиях может такое и в час

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