Sobes.tech
Junior — Middle

¿Cuáles son las diferencias entre los hilos virtuales y los hilos del sistema en programación?

sobes.tech AI

Respuesta de la IA

Hilos del sistema (hilos nativos) — son hilos gestionados por el sistema operativo. Cada uno de estos hilos corresponde a un hilo del sistema, y la conmutación entre ellos ocurre a nivel del SO. Tienen costos adicionales en la creación y cambio de contexto.

Hilos virtuales — son hilos ligeros implementados a nivel de la JVM, no vinculados directamente a los hilos del sistema. Permiten crear miles y millones de hilos con mínimos recursos, ya que la planificación y el cambio entre ellos ocurre dentro de la JVM.

Diferencias principales:

  • Los hilos virtuales se crean más fácilmente y rápidamente.
  • Los hilos virtuales permiten un uso más eficiente de los recursos en muchas tareas paralelas.
  • Los hilos del sistema ofrecen un control más bajo y una interacción directa con el SO.

Ejemplo de uso de hilos virtuales (Java 19+):

Thread.startVirtualThread(() -> {
    System.out.println("El hilo virtual está funcionando");
});