Red de conocimiento informático - Material del sitio web - Cómo ver los efectos de aplicación relacionados de los subprocesos verdes de Java

Cómo ver los efectos de aplicación relacionados de los subprocesos verdes de Java

¿Qué es exactamente el hilo verde de Java? Estos problemas requieren que miremos el problema desde su esencia. Echemos un vistazo a Java Green Thread (Green Thread), que es un concepto relativo al hilo del sistema operativo (Native Thread).

Subproceso del sistema operativo (Subproceso nativo) significa que los subprocesos del programa en realidad se asignarán a los subprocesos del sistema operativo, y la ejecución y programación de los subprocesos están controladas por el sistema operativo.

Java Green Thread significa que los subprocesos del programa en realidad no están asignados a los subprocesos del sistema operativo, sino que están programados por la propia plataforma de ejecución del lenguaje.

Los subprocesos de la versión actual del lenguaje Python se pueden asignar a subprocesos del sistema operativo. Los subprocesos de la versión actual del lenguaje Ruby son subprocesos verdes y no se pueden asignar a los subprocesos del sistema operativo. Por lo tanto, los subprocesos del lenguaje Ruby se ejecutan con relativa lentitud.

Cómo eliminar el bloqueo en la sincronización de subprocesos de Java

Descripción detallada de los códigos clave de las funciones de subprocesos de Java

Introducción al código básico de referencia de sincronización de subprocesos de Java

Java Una discusión en profundidad sobre el código fuente de control de subprocesos

Encontrar respuestas a los problemas de sincronización de subprocesos de Java en la práctica

¿Es cierto que los subprocesos verdes de Java son más lentos? que los hilos del sistema operativo? Por supuesto que no. De hecho, puede ocurrir lo contrario. Ruby es un caso especial. El programador de subprocesos no está muy maduro.

Actualmente, el modelo de implementación de subprocesos más popular son los subprocesos verdes de Java. Por ejemplo, Python sin pila introduce un concepto de hilo verde más liviano. En términos de programación concurrente de subprocesos, es mejor que Python en términos de velocidad de ejecución y carga concurrente.

Otro ejemplo más famoso es ErLang (un lenguaje de código abierto desarrollado por Ericsson).

El concepto de hilo verde de Java de ErLang es muy completo. El hilo de ErLang no se llama Thread, sino Process. Esto puede confundirse fácilmente con los procesos. Preste atención a la distinción aquí.

No hay ninguna necesidad de sincronización entre los procesos ErLang. Debido a que todas las variables en el lenguaje ErLang son finales, no se permiten cambios en el valor de las variables. Por lo tanto, no es necesaria ninguna sincronización.

Otro beneficio de las variables finales es que no hay referencias cruzadas entre objetos y es imposible formar una asociación circular. Las asociaciones entre objetos son unidireccionales y en forma de árbol. Por lo tanto, la eficiencia del algoritmo de recolección de basura de la memoria también es muy alta. Esto permite a ErLang lograr el efecto de Soft

Real Time. Esta no es una tarea fácil para un lenguaje que admite la recolección de basura en memoria.