quali tecniche dovrebbero essere utilizzati per gli oggetti manico in asp.net cache per evitare problemi di accesso multiplo thread asp.net?

StackOverflow https://stackoverflow.com/questions/3672281

Domanda

dal asp.net contiene più thread che sono in esecuzione allo stesso tempo.
quindi se 2 thread accedono un oggetto (semplice o complesso) che ho ricevuto dal l'asp.net HttpContext cache.
non può questo portare a problemi di stato su tale oggetto, se questi 2 theads cercato di modificare / leggerlo, allo stesso tempo?
Quindi, che tipo di precauzioni devo implementare?
Per esempio io sto pensando che forse bloccando l'oggetto mentre si lavora con esso? (Abituato questi problemi di prestazioni causa?)
o forse quando ho recuperare qualche oggetto dalla cache dovrei creare una copia da esso?
o forse non ho bisogno di preoccuparsi di questo problema a tutti?
grazie

È stato utile?

Soluzione

È necessario decidere questo in base al contesto del problema, una taglia unica soluzione non funzionerà qui. Se stai leggendo solo i dati, allora non avrete problemi di threading. Se si sta scrivendo i dati a questo di frequente, la sua inutile utilizzando la cache. Se la sua parte di una di una miscela e caching aiuta con le prestazioni, ecc, allora si sia bisogno di ricorrere a normali tecniche di sincronizzazione dei thread (per esempio lettore scrittore serrature) o forse rendere il vostro immutabile oggetto in cui le modifiche al tuo oggetto creano sempre un nuovo oggetto. Tale scelta porta a threading problemi propri, come il nuovo oggetto deve quindi sostituire il vecchio oggetto nella cache.

Altri suggerimenti

In 5 + anni di progetti di sviluppo ASP.NET, non ho mai incontrato una situazione in cui questa è stata una preoccupazione.

Detto questo ... Sei certo intenzione di avere un problema di lettura tutti gli articoli. Se si dispone di un oggetto che si desidera modificare spesso, perché è nella cache per cominciare? Se non è necessario modificare spesso, quindi bloccando l'oggetto non sarà un problema di prestazioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top