¿Cuál es la diferencia entre los hilos en java y los hilos nativos?Hilos en Java
Respuesta
Los subprocesos de Java se pueden implementar de cualquier manera que cumpla con la especificación. La especificación no requiere una implementación específica.
Efectivamente, todas las JVM modernas de escritorio y/o servidor implementan subprocesos Java como subprocesos nativos. Eso significa que hay exactamente 1 subproceso nativo para cada subproceso de Java y que el sistema operativo hace toda la programación, al igual que lo hace para un programa de C, por ejemplo.
Algunas JVM antiguas y posiblemente algunas JVM para dispositivos con recursos limitados pueden implementar subprocesos de forma que el número de subprocesos nativos utilizados sea menor que el número de subprocesos de Java en ejecución (o posiblemente 1). Se dice que esas implementaciones implementan los denominados "hilos verdes". En este caso, la propia JVM es responsable de la conmutación de tareas y la programación, en lugar de delegar esa tarea en el sistema operativo.
Depende de la implementación de la JVM, por supuesto, pero creo que son lo mismo. Es decir, un hilo en Java se implementa a través de un hilo nativo. Puede esperar/hacer con los subprocesos de Java todo tipo de cosas que pueda con subprocesos nativos.
Los subprocesos de Java y los subprocesos nativos son completamente diferentes. El hilo nativo es parte de la plataforma subyacente (el sistema operativo).
Los subprocesos de Java son una de las características del lenguaje Java para admitir la simultaneidad. La especificación Java controla la API y el funcionamiento de los subprocesos de Java. En última instancia, los hilos de Java se correlacionarán con hilos nativos durante la ejecución del programa Java. También es necesario que los subprocesos Java no se mapeen uno a uno con subprocesos nativos.
Los subprocesos de Java (clase de Thread y la interfaz de Runnable) son una API de mucho más alto nivel que los subprocesos nativos en las aplicaciones compartidas de memoria. Recomendé este libro "Java Threads" de Oaks y Wong http://shop.oreilly.com/product/9780596007829.do. Es una práctica común implementar la interfaz Runnable, pero depende del alcance del código.
- 1. ¿Hilos dentro de hilos en Java?
- 2. Hilos Java vs Hilos OS
- 3. Métodos Java Ejecutando en hilos
- 4. hilos de java en libGDX
- 5. sincronización de hilos java
- 6. reutilización de hilos java
- 7. Java hilos y basura colector
- 8. hilos Tomcat Java vs roscas
- 9. excepciones de hilos de java
- 10. Java Swingworker y múltiples hilos
- 11. Interactuando con hilos UI en Java/J2ME
- 12. ¿Debo manualmente detener los hilos en Java?
- 13. Java: manejo de excepciones en hilos secundarios
- 14. Serialización en java: seguridad automática de hilos?
- 15. ¿Distribuye hilos Java en varios servidores?
- 16. ¿Cómo están programados los hilos java?
- 17. Los hilos java se eliminan cuando terminan
- 18. Hilos de Java y bloques sincronizados
- 19. Java comparte una variable entre dos hilos
- 20. Hilos en PHP
- 21. Datos de tuberías entre hilos con Java
- 22. Permisos de archivos Java para hilos
- 23. Hilos en bash?
- 24. Crear hilos en java para ejecutarlos en el fondo
- 25. Ejecutar el proceso de fondo en diferentes hilos en Java
- 26. Hilos en Flash y Flex
- 27. ¿Cómo puedo detectar excepciones de hilos AWT en Java?
- 28. Caché a prueba de hilos de un objeto en java
- 29. ¿Manera más fácil de sincronizar 2 hilos en Java?
- 30. Cómo aprender acerca de los hilos, especialmente en Java
¿Alguien me puede dar una referencia para esto? –
@espertus El código fuente de referencia de la implementación HotSpot JVM se puede encontrar en http://openjdk.org –