Recorriendo Vectores

Páginas: 3 (697 palabras) Publicado: 22 de abril de 2015
Recorriendo Vectores gigantes con multiples hilos

Visto paso a paso:
Establezco un tamaño de bloque. Por ejemplo 100 unidades. Cada hilo hará la búsqueda sobre este número de datos.
Divido eltamaño de mi vector en el tamaño del bloque. Si el resultado es menor a uno, significa que mi vector es menor al bloque, por lo que el resultado debe ser 1.
Preparo un espacio para que cada hilo notifiqueque ha terminado sin encontrar resultados.
Preparo un boolean para indicar que el dato fue encontrado.
Lanzo hilos de busqueda.
Espero...

La implementacion mas simple de esta algoritmo, podria hacerseasi:

public class Buscador {

private static final int TAM_BLOQUE = 100; //Tamaño del bloque
private static Logger logger = Logger.getLogger(Buscador.class.getName());
private booleanencontrado; //Indica que el dato fue encontrado
private List datos; //Donde se hara la busqueda
private Map flags; //Donde cada hilo indica que terminoprivate Resultado resultado; //El dato que fue encontrado

public Buscador(List datos) {
this.datos = datos;
}

/**
* Este metodo debe ser lanzado desde unhilo, no desde el event-dispatch
* thread ya que si no bloqueara la GUI
*
*/
public Resultado buscar(Muestra muestra) {
if (datos == null || datos.isEmpty()) {return null;
}
//Sincronizo los datos para buscar desde muchos hilos
List vector = Collections.synchronizedList(datos);
int bloques = datos.size() / TAM_BLOQUES;if (bloques < 1) {
bloques = 1;
}
flags = Collections.synchronizedMap(new HashMap(bloques));
final int largoSegmento = t / bloques;
encontrado =false;
resultado = null;
/*
* Este es el punto donde se lanzan los hilos de busquedas. Aprovechamos
* las caractristicas de las clases anonimas y el metodo sleep() de...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Recorridos
  • recorridos
  • Recorrido
  • Recorridos
  • Recorrido
  • El recorrido
  • Vectores
  • Vectores

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS