Size: a a a

2020 September 11

Dᅠ

Danylo ᅠ in learn.java
Sergey Grushin
А он часто нужен? Может мне не нужен
Ты проходишь кор? Дошёл до многопоточности? Вопрос просто поставлен так, будто нет.
источник

AD

Anatolii D in learn.java
Sergey Grushin
А он часто нужен? Может мне не нужен
это чтобы переменная хранилась в процессоре и ее можно было разными потоками использовать, но если там Object, то в процессоре ссылка хранится, если не ошибаюсь
источник

DS

Dmitriy Shilnikov in learn.java
Anatolii D
это чтобы переменная хранилась в процессоре и ее можно было разными потоками использовать, но если там Object, то в процессоре ссылка хранится, если не ошибаюсь
Может не надо херню писать?
источник

SG

Sergey Grushin in learn.java
Danylo ᅠ
Ты проходишь кор? Дошёл до многопоточности? Вопрос просто поставлен так, будто нет.
Не агрись плиз. Я уже прошел кор. Но с volatile я не работал, а сейчас, судя по всему, она мне как раз и нужна. Поэтому я снова ушел перечитывать кор, но мой мозг уже не в состоянии так легко освоить что-то
источник

AD

Anatolii D in learn.java
Danylo ᅠ
Connection pooling??
ага, пул из нескольких коннектов, но там и одного по идее хватить должно
источник

Dᅠ

Danylo ᅠ in learn.java
Миролюбиво спросил, братик. Лучше погугли, мы лучше тырнетов не объясним. http://tutorials.jenkov.com/java-concurrency/volatile.html

Вообще не работал с тредами в жабе, кроме хелоуворлдовского слипа, но судя по всему, идея volatile та же, что и у транзакций.
источник

AD

Anatolii D in learn.java
Dmitriy Shilnikov
Может не надо херню писать?
да, перепутал, хранится в оперативке, не кэшируется между потоками
источник

V

Vlad in learn.java
Sergey Grushin
Ребят, скажите, что такое volatile. Нифига не понимаю(
Где о нем почитать?
Если простым языком, чтобы результат изменения перепеменной не только в кэше процессора остался, но и в памяти обновился, чтобы другие потоки смогли увидеть актуальное значение переменной
источник

D

Dima in learn.java
Anatolii D
не за что, оно так не особо понятна задача, но каждый раз открывать и закрывать коннект к бд затратно по ресурсам очень
Юзать пул лучше всего
источник

SG

Sergey Grushin in learn.java
Vlad
Если простым языком, чтобы результат изменения перепеменной не только в кэше процессора остался, но и в памяти обновился, чтобы другие потоки смогли увидеть актуальное значение переменной
Угу. А можете привести пример из реальной жизни?
Ну вот, 2 случая: когда есть volatile и когда нет.
источник

D

Dima in learn.java
Sergey Grushin
Угу. А можете привести пример из реальной жизни?
Ну вот, 2 случая: когда есть volatile и когда нет.
Почитай, как синглтон паттерн реализовать с double check locking
источник

SG

Sergey Grushin in learn.java
Dima
Почитай, как синглтон паттерн реализовать с double check locking
Не-не. Я про реальную жизнь. Интересно, получится ли привести пример
источник

V

Vlad in learn.java
Sergey Grushin
Угу. А можете привести пример из реальной жизни?
Ну вот, 2 случая: когда есть volatile и когда нет.
Я нет, многопоточные фреймворки не пишу, кровавый интырпрайз и синхронизацию видел только в конкурентных коллекциях))
источник

D

Dima in learn.java
Sergey Grushin
Не-не. Я про реальную жизнь. Интересно, получится ли привести пример
Вполне реальный пример
источник

SG

Sergey Grushin in learn.java
Vlad
Я нет, многопоточные фреймворки не пишу, кровавый интырпрайз и синхронизацию видел только в конкурентных коллекциях))
Да нет же. Я про случаи из жизни, реальной.
источник

D

Dima in learn.java
Ты наверно даже и не смотрел его
источник

V

Vlad in learn.java
Sergey Grushin
Да нет же. Я про случаи из жизни, реальной.
Два оператора и у каждого свой блокнот и один общий 😂.
Один после звонка у себя что-то записал, а следующий звонок от этого же клиента попал на другого оператора, а первый в общий блокнот не успел занести информацию. Очень искусственный пример
источник

Dᅠ

Danylo ᅠ in learn.java
Sergey Grushin
Угу. А можете привести пример из реальной жизни?
Ну вот, 2 случая: когда есть volatile и когда нет.
Пошёл ты с батей в разные магазины купить хлеб. Если ты купишь, то он не должен этого делать, и наоборот - нужен один хлеп. Перед тем как зайти в магазин вы решили созвониться - оба сказали, что не купили. Закэшировали isBought = false. Батя зашёл, вызвал купитьХлебЕслиНикемНеКуплен - батя купил хлеб, ведь isBought==false, стал true.
Теперь зашёл ты, вызвал купитьХле.. и чтобы не проверять и не тратить время на созвон делаешь оптимизацию взяв старое значение(звонил же батя, сказал, что не купил) с локального для тебя(ты - тред) кеша. Думаешь, батя не купил хлеб, ты берёшь. А на самом деле нужно было позвонить. Ты этого не сделал, хлеб у двух.
источник

Д

Дима in learn.java
Ух мемори модел
источник

Д

Дима in learn.java
Классика
источник