Ответы пользователя по тегу Параллельные вычисления
  • Стоит ли углубленно изучать многопоточность, асинхронное и паралельное программирование?

    Хочется ответить цитатой:
    Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
    Ответ написан
    Комментировать
  • Как лучше организовать многопоточное добавление данных в словарь (Dictionary)?


    многопоточное добавление данных в словарь

    Dictionary не потокобезопасен, по тому при обращении к нему из нескольких потоков нужно синхронизировать потоки (желательно при любых обращениях)

    Лучше использовать ConcurrentDictionary - в нём уже решены потенциальные проблемы при конкурентном доступе (например попытке изменить запись, которая уже удалена в другом потоке или удаление удалённой, или создании уже существующей, или чтении несуществующей/удалённой)

    Interlocked exchange лучше смотреть по месту, может подойдёт, а может нет.

    На счёт инмемори базы тоже следует посмотреть на конкретную задачу.

    UPD: ещё как хорошее решение звучит использование System.Threading.Channels, раз задача стоит накапливать записи и батчем их отправлять в СУБД.
    Так мы гарантированно решаем проблему гонок, так как фактически менять данные будет только один поток
    Ответ написан
    Комментировать