Информация об изменениях

Сообщение Re[31]: ConcurrentDictionary vs reference type от 25.02.2022 7:24

Изменено 25.02.2022 7:26 Serginio1

Re[31]: ConcurrentDictionary vs reference type
Здравствуйте, Codealot, Вы писали:

C>Здравствуйте, Serginio1, Вы писали:


S>>Барьер ты как раз и вызываешь, что бы компилятор не оптимизировал. Но volatile этим и занимется без полного барьера


C>А также для того, чтобы синхронизировать память. Если они вызываются.


S>> Иии. Это чему мешает например для имутабельных классов?


C>Всему.

Ну ты хоть пример то приведи! А то все болтовня!
S>> Не непонятно. ССылка когда становится доступной? Только после создания и инициализации в конструкторе. Если ты конечно из контруктора её не передаешт. Но это твои проблемы

C>Нет никакого "после создания", Нео.

угу ссылка=new Конструктор() откуда она видна из другого процесса, а вот куда в итоге это ссылка записывается там и нужна синхронизация
S>> Ну вот строки прекрасно работают и нет никаких проблем с потоками.

C>Где конкретно, в каком сценарии и что это доказывает?

Конкретно интернированные строки! String.Intern делает строки ещё интереснее
Подводные камни в бассейне строк, или ещё один повод подумать перед интернированием экземпляров класса String в C#
Re[31]: ConcurrentDictionary vs reference type
Здравствуйте, Codealot, Вы писали:

C>Здравствуйте, Serginio1, Вы писали:


S>>Барьер ты как раз и вызываешь, что бы компилятор не оптимизировал. Но volatile этим и занимется без полного барьера


C>А также для того, чтобы синхронизировать память. Если они вызываются.


S>> Иии. Это чему мешает например для имутабельных классов?


C>Всему.

Ну ты хоть пример то приведи! А то все болтовня!
S>> Не непонятно. ССылка когда становится доступной? Только после создания и инициализации в конструкторе. Если ты конечно из контруктора её не передаешт. Но это твои проблемы

C>Нет никакого "после создания", Нео.

угу ссылка=new Конструктор() откуда она видна из другого процесса, а вот куда в итоге это ссылка записывается там и нужна синхронизация
S>> Ну вот строки прекрасно работают и нет никаких проблем с потоками.

C>Где конкретно, в каком сценарии и что это доказывает?

Конкретно интернированные строки! String.Intern делает строки ещё интереснее
Подводные камни в бассейне строк, или ещё один повод подумать перед интернированием экземпляров класса String в C#

Это по сути то и есть ConcurrentDictionary. Но никаких проблем с интернированными строками я не слышал!
А string то это объект!