Tema: Threads
Ver Mensaje Individual
  #6 (permalink)  
Antiguo 21/05/2015, 01:35
Kritik
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años, 8 meses
Puntos: 31
Respuesta: Threads

Mis necesidades son equivalentes al siguiente ejemplo:
Ponte que en una base de datos tengo los siguientes campos: número not null, múltiplo1 null, multiplo2 null , múltiplo3 null.
Mi hilo principal tiene un método de búsqueda de valores en el campo número. Y en el caso de no encontrarlo, lo inserta por medio de otro método.

Cada vez que mi hilo principal inserta un registro en este segundo método, lo único que inserta son valores para número, pero no inserta valores en los campos múltiplo.

Cada vez que hace una inserción arranca un hilo secundario. Ese hilo secundario busca registros con campo número, y que multiplo1 sea null. Cuando encuentra uno hace los cálculos y hace un update al registro, metiéndole los valores multiplo1,multiplo2,y múltiplo3.

Hasta aquí no hay problema, ha actualizado un registro.

El problema es cuando yo en ese hilo secundario he guardado una lista con los valores múltiplo1,multiplo2 y multiplo3. Y entonces decido llamar al método de búsqueda en el que hago las búsquedas de esos valores múltiplos como valores de número. Para ver si esos múltiplos tienen sus registros propios.

En este caso, cada vez que hago esa búsqueda va generar un nuevo registro con el valor numero cuyo valor es el multiplo1 del registro anterior. Pero también va a generar una nueva inserción de otro registro para el valor numero con el valor multiplo2 del registro origen. Y luego también va a generar un nuevo registro para el valor numero con el valor multiplo3 del registro origen. Y como dije al principio, cada vez que se inserta un nuevo valor se genera un nuevo hilo que calcula los múltiplos, así que en este momento voy a generar 3 nuevos hilos para actualizar esos 3 valores...
Además del problema añadido de que cada nuevo hilo va a recoger los 3 registros que tienen valores en numero pero no en múltiplo y cada uno de los 3 hilos va a generar 9 nuevos registros... (provocando repeticiones de registros en mi BBDD) también tengo el problema de que el número de hilos va creciendo exponencialmente.