por lo que quiero tener una lista de arrays que almacena una serie de cotizaciones de bolsa. pero hago un seguimiento del precio de la oferta, pregunto el precio y el último precio para cada uno.sincroniza lecturas a una colección java
por supuesto, en cualquier momento, la oferta o el último de un stock dado puede cambiar.
Tengo un hilo que actualiza los precios y uno que los lee.
quiero asegurarme de que al leer ningún otro hilo esté actualizando un precio. así que miré la colección sincronizada. pero eso parece prevenir solo la lectura mientras que otro hilo está agregando o eliminando una entrada a la lista de arrays.
Así que ahora estoy en el enfoque envoltorio:
public class Qte_List {
private final ArrayList<Qte> the_list;
public void UpdateBid(String p_sym, double p_bid){
synchronized (the_list){
Qte q = Qte.FindBySym(the_list, p_sym);
q.bid=p_bid;}
}
public double ReadBid(String p_sym){
synchronized (the_list){
Qte q = Qte.FindBySym(the_list, p_sym);
return q.bid;}
}
Así que lo que quiero lograr con esto es sólo un hilo puede estar haciendo nada - la lectura o la actualización de los contenidos de un la_lista - al mismo tiempo. ¿Me acerco a esto, verdad?
gracias.
¿Está tratando de evitar que una escritura en un objeto Citar ocurra al mismo tiempo que una lectura? Si es así, bloquear la colección no logrará esto. Ver mi respuesta – DJClayworth