¿Qué es un hilo en Java? ¿Qué es el subproceso múltiple? ¿Cuáles son las características del subproceso múltiple?
El concepto de hilo: ¿Hilo? Cada programa que se ejecuta en el sistema es un proceso. Cada proceso contiene uno o más hilos. Un proceso también puede ser la ejecución dinámica de un programa completo o parte de un programa.
El concepto de subprocesos múltiples: ?Subprocesos múltiples consiste en completar múltiples tareas simultáneamente, no para mejorar la eficiencia operativa, sino para mejorar la eficiencia del uso de recursos para mejorar la eficiencia del sistema.
Características de subprocesos múltiples: ¿Se pueden utilizar subprocesos para poner tareas de programa a largo plazo en segundo plano para su procesamiento?
La interfaz de usuario puede ser más atractiva, de modo que, por ejemplo, , el usuario hace clic en un botón para activar el procesamiento de ciertos eventos y puede aparecer una barra de progreso para mostrar el progreso del procesamiento.
¿Se puede acelerar la velocidad de ejecución del programa?·Los subprocesos son más útiles para implementar algunas tareas en espera, como la entrada del usuario, la lectura y escritura de archivos y el envío y recepción de datos en la red.
En este caso podemos liberar algunos recursos valiosos, como el uso de memoria, etc.
La definición del hilo es relativamente abstracta. En pocas palabras, es un flujo de ejecución de código. La CPU puede mezclar y programar muchos flujos de ejecución. Los subprocesos son una forma de permitir que varias tareas se ejecuten de forma interactiva.
El modo de implementación de los subprocesos de Java en el sistema operativo varía según el sistema. Puede ser un proceso o subproceso a nivel del sistema, pero no tiene ningún impacto en los programadores.
Uno de los beneficios de la interacción de tareas es una mayor capacidad de respuesta del programa. Por ejemplo, si un programa de interfaz ejecuta una consulta de base de datos que requiere mucho tiempo, el uso de un subproceso separado puede permitir que la interfaz aún responda a las entradas de otros usuarios, mientras que un único subproceso solo puede esperar a que finalice la consulta antes de procesarla.
La JVM y el sistema operativo darán prioridad a los subprocesos con alta prioridad, pero eso no significa que estos subprocesos definitivamente se completarán primero. Establecer prioridades sólo puede sugerir un procesamiento más rápido por parte del sistema, no forzarlo.
Además, en tiempo de ejecución, los límites no se basan en funciones, sino en código máquina/código ensamblador. En otras palabras, no hay garantía de que cualquier fragmento de código se ejecute completamente sin interrupción (a menos que haya utilizado la sincronización). Debido a esto, han surgido varios métodos de sincronización de subprocesos.