2010-07-13 10 views
15

Según lo que sé, Java está utilizando subprocesos del sistema operativo (a diferencia de, por ejemplo, Erlang), lo que significa que los subprocesos creados con Java en Windows y Linux pueden comportarse de manera diferente.¿Los hilos creados en Java se comportan de manera diferente en Windows y Linux?

¿Hay alguna diferencia en los hilos de Java en Windows y Linux? ¿Cuál es la mayor diferencia? ¿Tal vez solo sea una diferencia en el rendimiento?

Respuesta

16

Esta es una pregunta muy general, por lo que daré una respuesta general.

Java cambió de los hilos verdes a los hilos nativos early in its development. Esto no significa que los hilos creados en Windows y Linux se comportarán de manera diferente ya que ambas plataformas utilizarán hilos nativos en sus respectivas implementaciones de JVM.

La interfaz de subprocesos expuesta a Java por cada sistema operativo, y de manera similar las interfaces nativas para el subprocesamiento a través de pthreads y subprocesos de Windows son muy similares.

Las mayores diferencias con respecto al enhebrado en las dos plataformas son que todos los hilos en Linux son una forma de proceso. Windows trata los hilos y procesos de manera muy diferente.

En mi experiencia personal, los subprocesos nativos en Windows son un poco más livianos y pueden funcionar ligeramente mejor en aplicaciones de proceso único. De forma correspondiente (y tal vez irrelevante), los procesos de Windows son extremadamente pesados ​​en comparación con sus homólogos de Linux.

0

Ya he usado hilo en ambos sistemas operativos, y no hay diferencias para el desarrollador de Java. :)

0

JVM ocultar todas las diferencias del sistema operativo a usted ...

como fue respondido previamente los hilos en las ventanas son grandes pesos pesados ​​que Linux queridos.

por experiencia una aplicación de varios subprocesos pesados ​​podría tener algunas demoras con el recolector de basura automático de memoria y aquellos pueden generar picos de memoria enormes.

Cuestiones relacionadas