Ho letto che le hashtable sono thread-safe perché è sincronizzato. considera questo snippet di codicehashtable e sincronizzazione in Java
if(!hashtable.contains(key)){
hashtable.put(key,value);
}
Le operazioni su hashtable potrebbero non essere sincronizzate. ad esempio, se Thread t1
accede a hastable e controlla la chiave e allo stesso tempo Thread t2
controlla la chiave, prima che t1 esegua put. ora due thread si trovano all'interno del blocco if e sovrascrive il valore-chiave.
quindi è necessario il blocco sincronizzato.
synchronized {
if(!hashtable.contains(key)){
hashtable.put(key,value);
}
}
Questa comprensione è corretta? o è hastables sicuro sulle operazioni eseguite su hastables. Ho avuto questo dubbio mentre stavo leggendo questo post on race condition
Sì, è corretto. – SJuan76