Threads de Java en Linux

07/03/2007

Java Threads

Una de las principales diferencias entre el desarrollo de Linux y otros sistemas operativos UNIX está en la librería de threads (hilos) del sistema. En las versiones de Java 2 anteriores a la 1.3, la JVM utiliza su propia librería de threads, conocida como greenThreads, para implementar los threads en la plataforma Java. La implementación GreenThreads minimiza la exposición de la JVM a las diferencias de a librería LinuxThreads y consigue que el porte sea más sencillo de conseguir. Lo malo del GreenThreads es que no se aprovechan los threads de Linux, de modo que la JVM no se escala bien al añadir nuevas CPUs.

En la versión J2SE 1.3, la máquina virtual HotSpot utiliza el sistema de threads de Linux para implementar los JavaThreads. Como los LinuxThreads se implementan como procesos clonados, cada JavaThread aparece en la tabla de procesos si ejecutas el comando ps.

Las últimas versiones del comando ps (en el paquete procps 2.0.7 y posterioes) ocultarán los threads Java y mostrarán solamente el proceso maestro en la salida de ps. La lista completa de threads se puede mostrar usando la opción -m.

Sólamente en las nuevas verisones del kernel Linux se reducirá el número de entradas en el sistema de archivos /proc.

En Solaris, sin embargo, los JavaThreads se mapean en threads de usuario, que son ejecutados en procesos ligeros (lightweight processes – LWP) . En Windows los threads se crean dentro del propio proceso. Hoy en día, la creación de un gran número de JavaThreads en Solaris y en Windows es más rápida que en Linux. Por tanto, podría ser necesario ajustar los programas que recaen en tiempos específicos de la plataforma para que lleven algo más en el arranque cuando se ejecutan en Linux.

Algunos comandos de interés

ps -eo pid,ppid,command

Algunos enlaces de interés

JAVA Technology on the Linux Platform
Java & Linux
Linux threading models compared: LinuxThreads and NPTL
Thread : Java Glossary

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: