2011-08-17 12 views
11

¿Es seguro el nuevo hilo de la clase Android LruCache? El documento java dice:Android LruCache (Android 3.1) seguridad de hilos

Esta clase es segura para subprocesos. Realizar múltiples operaciones de caché de forma atómica mediante la sincronización de la caché:

synchronized (cache) { 
    if (cache.get(key) == null) { 
     cache.put(key, value); 

    }} 

querían decir que decir que no seguro para subprocesos? ¿Por qué habría que sincronizar si la clase es segura para subprocesos?

Gracias!

Respuesta

17

No importa si la clase es segura para subprocesos o no. Si usa varias operaciones, es posible que aún necesite sincronizarse. Depende de cómo lo uses.

if (cache.get(key) == null) 
{ 
    //at this point you think there is no such value in the cache 
    //but another thread might have just added one between executing 
    //those two lines of code 
    cache.put(key, value); 
} 
Cuestiones relacionadas