Size: a a a

2020 July 04

AE

Alexandr Emelyanov in pro.jvm
Aleksey Shipilev
Сами по себе они ничего не делают, но если с ними что-то происходит, то с разными элементами всё происходит индивидуально. Другими словами, разные элементы массива с точки зрения модели памяти ведут себя так же, как разные поля в одном и том же инстансе, например.
Спасибо, буду знать)
источник

AM

Aleksander Melnichni... in pro.jvm
Aleksey Shipilev
Сами по себе они ничего не делают, но если с ними что-то происходит, то с разными элементами всё происходит индивидуально. Другими словами, разные элементы массива с точки зрения модели памяти ведут себя так же, как разные поля в одном и том же инстансе, например.
Правильно ли я понимаю, что ремаркой 'индивидуально', ты хочешь подчеркнуть, что в джаве нет word tearing, и о чем неоднократно на выступлениях говорил? А-ля поэтому апдейт хвостов, не затрагивает соседние элементы, которыми ведает другой поток.
источник

T

Tagir in pro.jvm
Oleg
подскажите, безопасно ли будет конкурентно писать разными потоками в непересекающиеся диапазоны в int array?

- например, 1 поток работает с [0,50], второй только с [51,100]
- потом идет join обоих и хочется видеть результат работы в main потоке

или какая синхронизация требуется?

@shipilev не подскажешь?
Параллельные стримы иногда так и делают, кстати.
источник

GM

Gerr Mes in pro.jvm
А disruptor на этой штуке построен - у разных тредов в работе (на запись) всегда разные ячейки в общем массиве
источник

А

Артём Курилко... in pro.jvm
глупый вопрос, но все же, консольное приложение ведь значительно безопасней сервлет приложение? учитывая что консольное тоже отправляет http запросы
источник

VR

VLadimir R in pro.jvm
Доброго всем времени суток, я очень слаб в java. Хотел посмотреть библиотеку(http://webmagic.io/), который вдохновлялся scrapy на python, но к сожалению не могу его даже запустить с просты примером, так как выдает оишбку
javax.net.ssl.SSLHandshakeException: Received fatal alert: protocol_version
источник

AE

Alexandr Emelyanov in pro.jvm
Артём Курилко
глупый вопрос, но все же, консольное приложение ведь значительно безопасней сервлет приложение? учитывая что консольное тоже отправляет http запросы
Не совсем понятно что сравнивается
источник

AE

Alexandr Emelyanov in pro.jvm
VLadimir R
Доброго всем времени суток, я очень слаб в java. Хотел посмотреть библиотеку(http://webmagic.io/), который вдохновлялся scrapy на python, но к сожалению не могу его даже запустить с просты примером, так как выдает оишбку
javax.net.ssl.SSLHandshakeException: Received fatal alert: protocol_version
источник

VR

VLadimir R in pro.jvm
Использую jdk11
источник

GM

Gerr Mes in pro.jvm
У вас не работает пример с гитхабом или с другим адресом?
источник

VT

Vadzim Tsitarenka in pro.jvm
подскажите у кого есть опыт конвертации excel в pdf. Использую e-iceblue:spire.xls.free:2.2.0 локально работает, но на сервере exception (в инете не нашел, пользуюсь бесплатной версией)
источник

O

Oleg in pro.jvm
Aleksey Shipilev
В этом сценарии никакой не требуется. Разные элементы массива по спеке выступают как независимые локации, поэтому потоки не интерферируют. Thread.join делает  видимым всё сделанного в потоке тому, кто заджойнил, т.е. main-потоку.
спасибо!

еще вопрос - есть 3 треда и массив

тред1 изменил диапазон1 и дальше что-то делает

тред2 изменил непересекаюшийся диапазон2 и дальше что то делает

как треду3 увидеть изменения в обоих диапазонах?

нужен общий лок?
источник

AS

Aleksey Shipilev in pro.jvm
Aleksander Melnichnikov
Правильно ли я понимаю, что ремаркой 'индивидуально', ты хочешь подчеркнуть, что в джаве нет word tearing, и о чем неоднократно на выступлениях говорил? А-ля поэтому апдейт хвостов, не затрагивает соседние элементы, которыми ведает другой поток.
Да. С точки зрения модели, что отдельные поля, что отдельные элементы -- независимы. Поэтому ничего особенного в массивах нет. Пока потоки не имеют конфликтных доступов к одному и тому же элементу, проблем нет.
источник

AS

Aleksey Shipilev in pro.jvm
Oleg
спасибо!

еще вопрос - есть 3 треда и массив

тред1 изменил диапазон1 и дальше что-то делает

тред2 изменил непересекаюшийся диапазон2 и дальше что то делает

как треду3 увидеть изменения в обоих диапазонах?

нужен общий лок?
Ну, по тем же правилам, что и обычно: поток-писатель должен выполнить release-действие (volatile write, unlock, завершение потока), а поток-читатель должен выполнить соотвествующее acquire-действие (volatile read [увидевший запись волатайла], lock [случившийся позже соответствующего unlock-а], Thread.join [увидевший завершение потока])
источник

А

Артём Курилко... in pro.jvm
Alexandr Emelyanov
Не совсем понятно что сравнивается
Если сравнить обычный веб сайт и консольное приложение которое отправляет запросы на другой сайт, то у сайт значительно больше уязвимостей?
источник

かたかわ in pro.jvm
Oleg
меня как раз низкоуровнево волнует, а не как переиспользовать треды - это ясно и так

а вот то что куски массива буду синхронизированы - это неочевидно, я гуглил и не нашел точного ответа
Я так и не понял, зачем нужна синхронизация для работы с разными участками памяти, ну да ладно 🌚
источник

O

Oleg in pro.jvm
かたかわ
Я так и не понял, зачем нужна синхронизация для работы с разными участками памяти, ну да ладно 🌚
чтобы зафлашить изменения из одного процессора в другой безопасно
источник

O

Oleg in pro.jvm
без синка возможно чтение старого контента, если он остался в кэше
источник

AE

Alexandr Emelyanov in pro.jvm
Артём Курилко
Если сравнить обычный веб сайт и консольное приложение которое отправляет запросы на другой сайт, то у сайт значительно больше уязвимостей?
Нет, равнозначно
источник

AS

Aleksey Shipilev in pro.jvm
Oleg
без синка возможно чтение старого контента, если он остался в кэше
Забудьте вообще про "кеши". Думайте, что вам нужны цепочки release-acquire. Нету таких цепочек -- нету гарантий на видимость, финита ля комедиа.
источник