¿Cuáles son los hilos ligeros y pesados en términos de Java?Hilo pesado y ligero
Respuesta
En la mayoría de los sistemas, los subprocesos ligeros son los hilos normales que se crean con la ayuda de la biblioteca, como p_threads en linux.
Mientras que el peso pesado, en algunos sistemas, se refiere a un proceso del sistema, con su propia memoria virtual y una estructura más compleja, como información sobre el rendimiento del proceso/estadísticas.
Para más información:
http://www.computerworld.com/s/article/66405/Processes_and_Threads
http://msdn.microsoft.com/en-us/library/ms684841(VS.85).aspx
Está relacionado con la cantidad de "contexto" asociado con un hilo, y por consiguiente la cantidad de tiempo que se tarda en realizar un "cambio de contexto ".
Los subprocesos pesados (generalmente subprocesos de nivel kernel/os) tienen mucho contexto (registros de hardware, pilas de kernel, etc.). Por lo tanto, lleva mucho tiempo cambiar entre hilos. Los subprocesos pesados también pueden tener restricciones sobre ellos, por ejemplo, en algunos sistemas operativos, los hilos del kernel no pueden ser eliminados por anticipado, lo que significa que no pueden ser desactivados por la fuerza hasta que pierdan el control.
Los hilos livianos por otro lado (generalmente, los hilos del espacio del usuario) tienen mucho menos contexto. (En esencia, comparten el mismo contexto de hardware), solo necesitan almacenar el contexto de la pila del usuario, por lo tanto, el tiempo necesario para cambiar los hilos ligeros es mucho más corto.
En la mayoría de los SO, cualquier subproceso que cree como programador en el espacio de usuario será liviano en comparación con los hilos de espacio del kernel. No existe una definición formal de peso pesado y peso ligero, es solo una comparación entre hilos con más contexto e hilos con menos contexto. No olvide que cada sistema operativo tiene su propia implementación diferente de subprocesos, y las líneas entre los subprocesos pesados y ligeros no están necesariamente definidas claramente. En algunos lenguajes de programación y frameworks, cuando creas un "Thread" quizás ni siquiera obtengas un hilo completo, es posible que obtengas una abstracción que oculte el número real de hilos debajo.
[Algunos sistemas operativos permiten a los hilos comparten el espacio de direcciones, por lo que las discusiones que usualmente serían bastante pesado, son ligeramente más claro]
Java roscas estándar son bastante pesados en comparación con los hilos de Erlang que son procesos spawnable muy ligeros. Erlang muestra una máquina de estados finitos distribuidos. Sin embargo, como ejemplo, http://kilim.malhar.net/, una biblioteca de extensión de Java basada en el modelo Actor de simultaneidad, propone una construcción para subprocesos ligeros en java. En lugar de implementar Thread run(), se implementa un hilo Kilim de la biblioteca Kilim utilizando un método execute(). Al parecer, muestra que el tiempo de ejecución de Java supera al de Erlang (al menos en un entorno local AFAIK). Java realmente tenía tales cosas en la especificación del lenguaje original llamadas 'hilos verdes' pero las versiones posteriores de Java las descartaban en favor de los hilos nativos
- 1. Ligero Vs Procesos de peso pesado
- 2. ¿Lwt significa "hilo de peso ligero"?
- 3. ¿Por qué no hay ningún hilo ligero real para Python?
- 4. ¿Cuál es la diferencia entre el proceso ligero y el hilo?
- 5. ¿PEAR es "pesado"?
- 6. Depurador C# independiente y ligero C#
- 7. ligero servidor http C++
- 8. Depurador .NET ligero.
- 9. Crear un sitio web pesado javascript modular y organizado
- 10. Analizador ligero XML C++ SAX
- 11. Entorno de desarrollo WebLogic ligero
- 12. Motor ligero de generación de informes de Java
- 13. Analizador de expresiones regulares ligero
- 14. Haciendo submenús de JPopupMenu peso pesado
- 15. ¿Qué JavaScript AJAX Framework es más potente y ligero?
- 16. Cómo utilizar Bouncy Castle ligero API con AES y PBE
- 17. ¿Python es más rápido y ligero que C++?
- 18. Mejor marco de GUI ligero y sensible Linux
- 19. Cuál es más rápido y más ligero - mysqli & PDO
- 20. Ligero NoSQL DB que admite REST y JSON
- 21. peso ligero y SIMPLE jquery auto sugieren/autocompletar?
- 22. nuevo hilo() y Colección
- 23. Encurtido ligero para tipos básicos en pitón?
- 24. ¿Servidor ligero de aplicaciones web para PHP?
- 25. Ejecute un preprocesador "ligero" para GCC
- 26. Diferencia entre el hilo # ejecutar y el hilo # despertar?
- 27. Cómo escribir un ejecutable ligero como uTorrent
- 28. gratuito, ligero PHP Solución de comercio electrónico
- 29. Mongodb ligero ODM/ORM para Python
- 30. AudioServicesPlaySystemSound y el hilo principal
@TFD - el OP solo hace 4 preguntas, hay suficiente tiempo para aceptar una respuesta. – ChrisF