Threads in java ( multihilos en Java )
Procesos e hilos
Un sistema operativo como Windows permite ejecutar muchos procesos simultáneamente, por ejemplo se puede navegar en internet con un navegador web, abrir un documento en Word, ejecutar el reproductor de música de Windows, y mantener una conversación con un amigo al mismo tiempo, a esto se le llama multitarea.
Tipos de Hilos
Existen 2 tipos de hilos:
Hilos Usuario
Los hilos creados por usuarios (programadores) se llaman hilos usuarios. Los hilos usuario se ejecutan en primer plano. La JVM no finalizara cuando un hilo usuario este todavía corriendo. Sin embargo cuando todos los hilos usuarios han finalizado su ejecución, la JVM terminara todos los hilos demonios, incluyendo el recolector de basura, y terminara.
El hilo principal main es un hilo de usuario.
Hilos Demonios
La mayoría de estos hilos demonios son creados por la JVM, estos son creados para tareas como recolección de basura y la implementación AWT. Ellos generalmente se ejecutan en segundo plano. Son creados para dar servicios a los hilos usuarios.
Se puede utilizar el método isDaemon() para revisar si un hilo en particular es un hilo demonio o no.
Ciclo de vida de los Hilos
Un hilo se crea y finalmente se termina, un hilo puede pasar a través de varios estados entre se creación y destrucción.
Un hilo se crea a partir de una subclase Thread, una instancia de Java.Lang.Thread, como también es posible crear una clase hilo usuario implementando la interfaz Runnable.
A partir de la creación de un hilo, se dice que está en el estado “nuevo”, en este momento el hilo no se está ejecutando, cuando se invoca el método start() el hilo cambia a estado “ejecutable” esto indica que el hilo está vivo y listo para ser ejecutado.
El hilo cambia de estado ejecutable a no ejecutable cuando ocurre uno de los siguientes eventos:
Como crear Hilos
Existen 2 formas de crear hilos en java:
Sincronización de Hilos
Un recurso crítico es aquel que puede ser usado solo por un usuario a la vez, si varios usuarios acceden al recurso crítico simultáneamente, se puede llegar a un estado inconsistente. Cuando varios hilos en paralelo compiten por un recurso crítico compartido, debe haber un proceso para asegurar que este recurso será usado solo por un hilo a la vez., este proceso se llama sincronización.
Condición de carrera
Esta se define como el comportamiento irregular causado por una dependencia inesperada con relación a la ocurrencia relativa en el tiempo de los eventos.
En otras palabras, este comportamiento inesperado ocurre cuando un programador asume incorrectamente que un evento en particular ocurrirá siempre antes que otro.
próximo post tendremos códigos de ejemplo y explicación
You got a 1.97% upvote from @upmewhale courtesy of @neliobatis! Earn 90% daily earning payout by delegating SP to @upmewhale.
Congratulations! This post has been upvoted from the communal account, @minnowsupport, by neliobatis from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, theprophet0, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.
If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
Be sure to leave at least 50SP undelegated on your account.