Asp.net Core, MemoryCache и CacheExtensions из "Microsoft.Extensions.Caching.Memory" являются потокобезопасным типом или нет?

Asp.net Core, MemoryCache и CacheExtensions из "Microsoft.Extensions.Caching.Memory" являются потокобезопасными типами или нет?

Я просматриваю множество документов, но не могу сделать вывод, так как это сбивает с толку. Некоторые мнения экспертов были бы полезны.

хотя в документации это четко не указано, но он должен быть потокобезопасным, иначе вы не сможете использовать его удобно. И здесь используется исходный код некоторой заархивированной версии github.com/aspnet/caching/blob/master/src/… - вы можете видеть, что внутри используется ConcurrentDictionary.

King King 04.04.2021 19:38

вы прошли через это? blog.novanet.no/…

ecma-402 04.04.2021 21:19

похоже, что это компромисс между возможностью блокировки и производительностью. Обычно ваши кэшированные данные должны быть согласованы в течение короткого времени (так что даже когда возникает состояние гонки, между результатами, возвращаемыми из кеша, может быть небольшое или нулевое различие). После этого короткого периода состояния гонки ключ уже кэшируется с одним значением, и тогда он будет работать нормально.

King King 05.04.2021 05:17

Я пропустил этот момент в документации, где говорится о возможном состоянии гонки, при котором код фабрики запускается несколько раз (что может возвращать разные результаты). Это не совсем потокобезопасный, как мы обычно ожидаем.

King King 05.04.2021 05:19

если вы загружаете большие данные в кеш, что может занять некоторое время, вам следует написать свою собственную логику, чтобы избежать многократного выполнения логики загрузки (что может значительно потреблять системные ресурсы).

King King 05.04.2021 05:41
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
14
0

Другие вопросы по теме