CSI Consultores

 
  • Aumentar fuente
  • Fuente predeterminada
  • Disminuir fuente
Home Etiqueta: demonios java

Etiqueta: demonios java

02.09.2009 08:59:00
admin

Por Guido J. Granobles.

Es conocido por muchos que  el uso de la palabra clave synchronized ya sea para el establecimiento de métodos o bloques de código sincronizado afecta el desempeño óptimo de las aplicaciones en cuanto a velocidad de procesamiento se refiere.  Aunque el uso abusivo de este tipo de bloques de código se ha condenado desde sus inicios cabe decir que las constantes mejoras de la JVM a través de los años hace que la comparación entre el porcentaje de desempeño afectado VS los grandes beneficios  a la hora de resolver problemas de concurrencia, inclinan la balanza hacia este ultimo.  El principal problema asociado con el uso excesivo de los bloques de código sincronizado está en que a medida que se incrementan este tipo de métodos o bloques en una aplicación, mayor es la posibilidad de que en algún punto del programa durante la ejecución del mismo se presenten los conocidos DeadLocks que hacen que la aplicación entre en un loop infinito obligando a que sea reiniciada. 

En concreto un DeadLock ocurre cuando como mínimo dos hilos intentan simultáneamente asegurar un objeto que el hilo contrario ya tiene. Para ser más claro expondré un ejemplo, el hilo A obtiene el Lock  del objeto1 (o asegura el objeto1) mientras el hilo B obtiene el Lock del objeto2, seguidamente el hilo A intenta obtener el Lock del objeto2 antes de liberar el Lock del objeto1, al mismo tiempo el hilo B intenta obtener el Lock del objeto1 antes de liberar el Lock del objeto2, lo que tenemos aquí es que el hilo  A  esperara hasta que el hilo B libere el Lock del objeto2  mientras el Hilo B está esperando a que el hilo A libere el Lock del objeto1 y así se quedaran esperando el uno al otro hasta el día del juicio final o hasta que alguien reinicie la aplicación o la maquina. Veamos el ejemplo en código:     


  demonios java | hilos | Locks | DeadLocks | concurrencia
Comentarios 0Visitas: 885  

29.08.2009 07:29:32
admin

Por: Guido J. Granobles.

JSVC es parte del proyecto Jakarta Commons Daemon y esta destinado para cargar clases que implementen la interfaz Daemon.  JSVC puede ser enconjtrado con la distribucion oficial de Apache Tomcat  y comunmente se usa para arrancar Tomcat como un demonio desde el inicio del sistema operativo, evitando la necesidad de hacer  un arranque manual cada vez que el sistema operativo se inicie.  La sintaxis de JSVC es la siguiente:


  interfaz Daemon | demonios java | Daemon
Comentarios 0Visitas: 706  

21.08.2009 10:02:48
admin

 

Por: Guido J. Granobles.

En ocasiones necesitamos que un programa Java actue como un servicio que se inicia bien sea de manera manual o cada vez que nuestro OS arranca. Estos servicios se ejecutan en background y estan constantemente a la espera de eventos o ejecutando tareas especificas en intervalos de periodos definidos, a estos servicios se les conoce tambien como demonios o daemons en la lengua inglesa. A diferencia de una aplicacion normal los demonios son controlados por el OS en su arranque y en su finalizacion, permitiendo completar tareas de liberacion de recusros en cada finalizacion del servicio o cuando la maquina ha recibido una orden de apagado.
 

Para crear una aplicacion que se ejecute como un demonio debemos implementar la interface Daemon usando el paquete que nos provee Apache, la cual pueden encontrar en http://commons.apache.org/daemon.com La interface contiene los siguientes metodos que debemos implementar:
Comentarios 1Visitas: 1495  


Encuentranos en FaceBook

Blog

« <July - 2010> »
SunMonTueWedThu FriSat
    123
45678910
11121314151617
18192021222324
25262728293031
Today

Enlazes de interes