tag:blogger.com,1999:blog-2330324486466201518.post1732607883765808583..comments2022-03-30T00:28:48.461+02:00Comments on JavaBlog: Threads II - SynchronizedAnonymoushttp://www.blogger.com/profile/14726324449337290251noreply@blogger.comBlogger6125tag:blogger.com,1999:blog-2330324486466201518.post-75667907932808943792013-11-18T18:24:55.104+01:002013-11-18T18:24:55.104+01:00Hola, Sebastián.
Ante todo, muchas gracias por tu ...Hola, Sebastián.<br />Ante todo, muchas gracias por tu amabilidad. En cuanto a tu pregunta, en realidad no son los hilos los que se sincronizan, sino lo que tengan en común. Supongamos que esos hilos necesiten acceder a un mismo objeto (unos datos, un fichero, etc.), entonces es a ese objeto al que hay que añadirle la palabra clave synchronized, de forma que sólo un hilo pueda acceder a él en un momento dado, y que las actualizaciones que se hagan en el mismo sean visibles para los dos.<br />Si por otro lado, lo que tienen en común es un método (por ejemplo, los dos utilizan el método imprimir()) lo que debes sincronizar es el método (dentro de run, no de main).<br />¿Y qué ocurre si son totalmente independientes y no comparten ni métodos, ni datos ni nada, aunque necesitas que se ejecuten a la vez, pero que en un determinado momento uno espere a que acabe el otro?<br />Entonces no necesitas sincronizar nada, sino que puedes utilizar por ejemplo join() (hecha un ojo al tutorial anterior a este, Threads I) Por ejemplo, si la instancia de Hilo2 es h2, con h2.join(), h1, instancia de Hilo1 esperará a que termine de ejecutarse el otro hilo antes de continuar su propia ejecución.<br />Ten en cuenta además que aquí hablamos de un manejo de hilos muy básico, simplemente para entender los conceptos, pero que para códigos más complejos, del mundo real, lo mejor es utilizar un "ejecutor" (Executor) Puedes leer sobre ellos aquí: http://docs.oracle.com/javase/tutorial/essential/concurrency/exinter.html<br />Espero haberte sido de ayuda.<br />Un saludo.Anonymoushttps://www.blogger.com/profile/14726324449337290251noreply@blogger.comtag:blogger.com,1999:blog-2330324486466201518.post-16282756152066573142013-11-17T20:38:53.154+01:002013-11-17T20:38:53.154+01:00Hola Sonia, vuestros tutoriales son excelentes, pe...Hola Sonia, vuestros tutoriales son excelentes, pero tengo la siguiente duda:<br /><br />Supongamos que tengo las clases Hilo1 e Hilo2 cada clase con un método run diferente, una imprime un mensaje y la otra hace otra cosa (cualquier otra cosa), y en el main inicializo los dos hilos, ahora, ¿cómo hago para sincronizar estos hilos? que por ejemplo en determinado momento el Hilo1 se pare o se "sincronize" mientras el Hilo2 se ejecuta, sabiendo que cada hilo corresponde a una clsae "runnable" diferentesebastianhttps://www.blogger.com/profile/11141892004170766485noreply@blogger.comtag:blogger.com,1999:blog-2330324486466201518.post-45184199065358159262013-09-29T10:35:00.582+02:002013-09-29T10:35:00.582+02:00¡Muchas gracias Maver | ck, por estar al quite de ...¡Muchas gracias Maver | ck, por estar al quite de mis errores tipográficos! Efectivamente, tenía cambiados de lugar el 10 y el 20, y la segunda vez había escrito la variable cuenta en inglés (a veces me pasa).¡Creo que a partir de ahora voy a empezarme a hacer Copia y Pega a mí misma, en lugar de volver a escribir el código!<br />Gracias a ti, ya lo he corregido. Por favor, no dudes en avisarme si ves que meto la pata en algún otro sitio. Me temo que lo de la revisión no es lo mío.<br />¡Un saludo! ;-)<br />Anonymoushttps://www.blogger.com/profile/14726324449337290251noreply@blogger.comtag:blogger.com,1999:blog-2330324486466201518.post-5167733746753676292013-09-29T00:31:40.139+02:002013-09-29T00:31:40.139+02:00Hay algunos errores en ese algoritmo. No creo que ...Hay algunos errores en ese algoritmo. No creo que de ese resultado de 20 a 0, ya que la variable "cuenta" se inicializa en 10 en lugar de 20 y el bucle for debe ser de 10 en lugar de 20, por ultimo, la variable count no está declarada.Maver|ckhttps://www.blogger.com/profile/03216662899870562317noreply@blogger.comtag:blogger.com,1999:blog-2330324486466201518.post-12054630981766172222012-04-30T19:52:37.393+02:002012-04-30T19:52:37.393+02:00Muchas gracias por tus palabras. Para eso estamos....Muchas gracias por tus palabras. Para eso estamos. Y no dudéis en sugerir temas que queráis que se traten.<br />Saludos.Anonymoushttps://www.blogger.com/profile/14726324449337290251noreply@blogger.comtag:blogger.com,1999:blog-2330324486466201518.post-80224229622850965642012-04-30T01:27:30.627+02:002012-04-30T01:27:30.627+02:00Muy buen blog. Sigue así, me estás ayudando mucho....Muy buen blog. Sigue así, me estás ayudando mucho.<br /><br />Saludos.public void by the grace of God()noreply@blogger.com