miércoles, 26 de octubre de 2016
Hilos / Threads
En la programacion en muchas ocaciones se es necesario tener dos o mas procesos de manera simultanea, a esto se le llama programacion concurrente, esto se puede lograr de dos formas, se pueden tener varios cpus o nucleos que procesen la informacion de manera paralela o a traves del sistema operativo se puede compartir el tiempo del cpu y hacer que este procese la informacion de manera escalonada, java de manera interna te permite hacer esto ultimo utilizado una clase que se llama thread y una interfaz que se llama runnable, esta interfaz te permite crear una clase que va a ser procesada de forma "paralela " al proceso main, de esta forma podras hacer varias operaciones de manera simultanea. Programar el hilo de primera instancia no es muy complicado, ya que solo necesitas agregar un "implements Runnable" alado del nombre de tu clase, y despues implementar el metodo abstracto de void run() y adentro de este poner todas las operaciones que quieres que haga tu hilo cuando sea llamado, y en el void solo se instancia la clase y se corre el metodo run.Las cosas se empiezan a complicar cuando se tiene que tomar en cuenta el hecho de que si quieres modificar una variable en los distintos subprocesos, estos tienen que estar sincronizados de alguna forma para que la variable se cambie de manera correcta, de lo contrario, puede que se hagan las operaciones en un orden distintos al deseado.Tambien los hilos deberan de estar sincronizados ya que en algunas aplicaciones se necesita que un subproceso termine o te arroje un valor antes de que inicie el otro. Los hilos no son las unicas implementaciones que existen en java para la programacion concurrente, pero son las mas faciles de implementar ademas de que son las que utilizan menos recursos en el sistema, ya que los procesos hijos en muchos casos instancian parametros del proceso padre a diferencia del hilo el cual no depende tanto del entorno en donde se esta corriendo.Se puede definir un hilo como una tarea o proceso que esta ocurriendo de manera simultanea a otro.
La ventaja de utilizar procesos concurrentes es como ya se ha dicho antes la posibilidad de realizar varias tareas de forma simultanea y la principal desventaja es la complejidad de implementarla.
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario