Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/07/2011, 05:38
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: necesito sincronizar mis thread

Buenas:

Los accesos a la base de datos no necesitas sincronizarlos salvo que sean varios hilos dentro del mismo ejecutable y compartan la misma instancia de Connection. La forma de sincronizarlo sería

Código java:
Ver original
  1. Connection conexion = algo que te devuelve una conexion con bd;
  2. ....
  3. synchronized (conexion) {
  4.     // Aqui tu operacion con bd.
  5. }

como te digo, no es necesario si cada hilo tiene su propia Connection.

En los sockets pasa lo mismo. Varios sockets son independientes entre sí, por lo que no necesitas sincronizarlo y dentro de un socket, la entrada y la salida (InputStream y OutputStream) son indpendientes, por lo que tampoco tienes que sincronizar el hilo lector con el hilo escritor.

Si tendrías que sincronizar la salida (el OutputStream) si varios hilos van a escribir en una misma salida. Como antes, synchronized (laSalidaDelSocket) { .... }

En general no tiene sentido tener varios hilos leyendo de una misma entrada simultaneamente, porque se estarían "peleando" por los mensajes recibidos.

Se buena.
__________________
Apuntes Java
Wiki de Programación