C# что дальше...
От: vvv848165@ya.ru  
Дата: 13.03.19 10:08
Оценка: +1
если вспомнить за что мы не любили С++ — прописи памяти и ошибки её выделения/освобождения (которые так легко пороскакивали).

M$ расправился с этим раз и навсегда — сделал сборщик мусора в C#.

Но есть ещё один вид ошибок которые легко упустить из виду — это синхронизация (во время записи структуры из одного потока можно прочитать не совсем записавшеюся её из другого потока)

Есть ли какие нибудь методы для автоматического расставления мутексов и симафоров?
Re: Раз и навсегда
От: Qbit86 Кипр
Дата: 13.03.19 10:17
Оценка:
Здравствуйте, vvv848165@ya.ru, Вы писали:

VYR>если вспомнить за что мы не любили С++ — прописи памяти и ошибки её выделения/освобождения (которые так легко пороскакивали).

VYR>M$ расправился с этим раз и навсегда — сделал сборщик мусора в C#.

Вместе с этим добавляет новые способы налажать с памятью, например: ArrayPool<T>.Shared. Тут возможны те же проблемы: двойное освобождение, использование после освобождения, и т.д.

VYR>Есть ли какие нибудь методы для автоматического расставления мутексов и симафоров?


Вот уж чего точно не надо, так это автоматических мьютексов.
Глаза у меня добрые, но рубашка — смирительная!
Re: C# что дальше...
От: RushDevion Россия  
Дата: 13.03.19 10:36
Оценка: +2
Здравствуйте, vvv848165@ya.ru, Вы писали:

VYR>если вспомнить за что мы не любили С++ — прописи памяти и ошибки её выделения/освобождения (которые так легко пороскакивали).

Мы любили C++, просто за .NET платили больше.

VYR>M$ расправился с этим раз и навсегда — сделал сборщик мусора в C#.

Про фрагментацию LOH мы тактично промолчим.
И про IDisposable, который забыли вызвать.
И про удержание ссылок на short-lived объекты каким-нибудь long-lived объектом.

VYR>Есть ли какие нибудь методы для автоматического расставления мутексов и симафоров?

[MethodImpl(MethodImplOptions.Synchronized)], но это дичь, от которой в M$ давно отказались.
SynchronizationContext можно сюда же приплести.

VYR>Что дальше...

Дальше F# и иммутабельность
Re: C# что дальше...
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 13.03.19 12:38
Оценка: +1
VYR> M$ расправился с этим раз и навсегда — сделал сборщик мусора в C#.

Всё было не так. Sun расправился — сделал сборщик мусора в Java.

Q> Вот уж чего точно не надо, так это автоматических мьютексов.


Тебе не надо. А топикстартеру и мне — надо. Мы тебя вычёркиваем.
Re[2]: C# что дальше...
От: Mr.Delphist  
Дата: 13.03.19 16:36
Оценка: +1
Здравствуйте, Эйнсток Файр, Вы писали:

VYR>> M$ расправился с этим раз и навсегда — сделал сборщик мусора в C#.


ЭФ>Всё было не так. Sun расправился — сделал сборщик мусора в Java.


Всё было не так. Не поверите, но языки со сборкой мусора были и задолго до Java. Просто не обрели популярности — т.е. это явно не киллер-фича для языков. Внезапно?

Q>> Вот уж чего точно не надо, так это автоматических мьютексов.


ЭФ>Тебе не надо. А топикстартеру и мне — надо. Мы тебя вычёркиваем.


Вспоминается шутливая поговорка "чем умнее указатель — тем тупее программист". А если серьёзно — сложность никуда не девается, просто выталкивается на иной уровень. Сколько там у нас семантик умных указателей уже? Плюс связанные с этим нюансы типа make_shared() и т.п. и шансы всё равно налажать в итоге. Вот с авто-мьютексами будет ровно так же.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.