2011-09-21 28 views
5

nunca he utilizado el objeto ConcurrentDictionary antes y tener un par de preguntas sobre el mismo:¿Cómo se accede a ConcurrentDictionary y cómo serializarlo?

  1. Estoy en lo correcto de que múltiples hilos pueden leer en el diccionario, al mismo tiempo, pero si lo que se escribe a, sin otro hilo puede acceder a él?

  2. ¿Se puede serializar este objeto en el disco?

Thanks.

+0

No garantiza una respuesta, pero fue diseñado para más lectores que escritores ([fuente] (http://www.lovethedot.net/2009/04/bit-about-performance-of-concurrent.html) , ver la respuesta de Josh Phillip). Téngalo en cuenta cuando lo use. –

Respuesta

13

¿Tengo la certeza de que varios hilos pueden leerse del diccionario al mismo tiempo, pero si se está escribiendo, ningún otro hilo puede acceder a él?

No, puede leer y escribir de forma segura desde varios subprocesos. Por supuesto, internamente, supongo que hay un poco de sincronización, pero la penalización de rendimiento debería ser pequeña y no debería preocuparse por eso y hacer ninguna sincronización adicional.

¿Se puede serializar este objeto en el disco?

Depende del serializador que utilice.

3
  1. ¿Tengo la certeza de que varios hilos pueden leerse del diccionario al mismo tiempo, pero si se está escribiendo, ningún otro hilo puede acceder a él?

Esto no es observable, se puede leer y escritura de múltiples hilos y dejar que la preocupación acerca de la clase de sincronización.

  1. ¿Se puede serializar este objeto en el disco?

Sí, se marca con [Serializable]. Y siempre puede extraer los pares <K,V> y usar cualquier serializador que desee.

Cuestiones relacionadas