in

Subprocesos múltiples en Java – javatpoint

1632581536 801 java multithreading

Subprocesos múltiples en Java es un proceso de ejecución de varios subprocesos simultáneamente.

Un hilo es un subproceso ligero, la unidad más pequeña de procesamiento. Multiprocesamiento y multiproceso, ambos se utilizan para lograr la multitarea.

Sin embargo, utilizamos subprocesos múltiples que multiprocesamiento porque los subprocesos utilizan un área de memoria compartida. No asignan un área de memoria separada, por lo que ahorra memoria y el cambio de contexto entre los subprocesos lleva menos tiempo que el proceso.

Java Multithreading se usa principalmente en juegos, animación, etc.


Ventajas de Java Multithreading

1) Es no bloquea al usuario porque los subprocesos son independientes y puede realizar varias operaciones al mismo tiempo.

2) usted puede realizar muchas operaciones juntas, por lo que ahorra tiempo.

3) Los hilos son independiente, por lo que no afecta a otros subprocesos si se produce una excepción en un solo subproceso.


Multitarea

La multitarea es un proceso de ejecución de múltiples tareas simultáneamente. Usamos la multitarea para utilizar la CPU. La multitarea se puede lograr de dos maneras:

  • Multitarea basada en procesos (multiprocesamiento)
  • Multitarea basada en subprocesos (subprocesos múltiples)

1) Multitarea basada en procesos (multiprocesamiento)

  • Cada proceso tiene una dirección en la memoria. En otras palabras, cada proceso asigna un área de memoria separada.
  • Un proceso es un peso pesado.
  • El costo de comunicación entre el proceso es alto.
  • El cambio de un proceso a otro requiere algo de tiempo para guardar y cargar registros, mapas de memoria, actualizar listas, etc.

2) Multitarea basada en subprocesos (subprocesos múltiples)

  • Los hilos comparten el mismo espacio de direcciones.
  • Un hilo es ligero.
  • El costo de comunicación entre el hilo es bajo.

Nota: Se requiere al menos un proceso para cada hilo.

¿Qué es Thread en Java?

Un subproceso es un subproceso ligero, la unidad más pequeña de procesamiento. Es un camino de ejecución independiente.

Los hilos son independientes. Si ocurre una excepción en un hilo, no afecta a otros hilos. Utiliza un área de memoria compartida.

Java multiproceso

Como se muestra en la figura anterior, se ejecuta un hilo dentro del proceso. Hay cambio de contexto entre los hilos. Puede haber varios procesos dentro del sistema operativo y un proceso puede tener varios subprocesos.

Nota: A la vez, solo se ejecuta un hilo.

Clase Java Thread

Java proporciona Clase de hilo para lograr la programación de subprocesos. La clase Thread proporciona constructores y métodos para crear y realizar operaciones en un hilo. La clase Thread extiende la clase Object e implementa la interfaz Runnable.

Métodos de subprocesos de Java

SN Modificador y tipo Método Descripción
1) vacío comienzo() Se utiliza para iniciar la ejecución del hilo.
2) vacío correr() Se usa para realizar una acción para un hilo.
3) hoyo estatico dormir() Duerme un hilo durante el tiempo especificado.
4) hilo estático currentThread () Devuelve una referencia al objeto de subproceso que se está ejecutando actualmente.
5) vacío entrar() Espera que muera un hilo.
6) En t getPriority () Devuelve la prioridad del hilo.
7) vacío fijar prioridad() Cambia la prioridad del hilo.
8) Cuerda getName () Devuelve el nombre del hilo.
9) vacío escoger un nombre() Cambia el nombre del hilo.
10) largo getId () Devuelve el id del hilo.
11) booleano isAlive () Prueba si el hilo está vivo.
12) hoyo estatico producir() Hace que el objeto de subproceso que se está ejecutando actualmente se detenga y permita que otros subprocesos se ejecuten temporalmente.
13) vacío suspender() Se utiliza para suspender el hilo.
14) vacío reanudar() Se utiliza para reanudar el hilo suspendido.
15) vacío parada() Se utiliza para detener el hilo.
dieciséis) vacío destruir() Se utiliza para destruir el grupo de subprocesos y todos sus subgrupos.
17) booleano isDaemon () Prueba si el hilo es un hilo demonio.
18) vacío setDaemon () Marca el hilo como demonio o hilo de usuario.
19) vacío interrumpir() Interrumpe el hilo.
20) booleano isinterrupted () Comprueba si el hilo se ha interrumpido.
21) booleano estático interrumpido () Prueba si el hilo actual se ha interrumpido.
22) estático int activeCount () Devuelve el número de subprocesos activos en el grupo de subprocesos del subproceso actual.
23) vacío checkAccess () Determina si el subproceso que se está ejecutando actualmente tiene permiso para modificar el subproceso.
24) booleano estático holdLock () Devuelve verdadero si y solo si el subproceso actual mantiene el bloqueo del monitor en el objeto especificado.
25) hoyo estatico dumpStack () Se utiliza para imprimir un seguimiento de la pila del hilo actual en el flujo de error estándar.
26) StackTraceElement[] getStackTrace () Devuelve una matriz de elementos de seguimiento de pila que representan el volcado de pila del subproceso.
27) estático int enumerar() Se utiliza para copiar el grupo de subprocesos de cada hilo activo y su subgrupo en la matriz especificada.
28) Thread.State getState () Se utiliza para devolver el estado del hilo.
29) ThreadGroup getThreadGroup () Se utiliza para devolver el grupo de subprocesos al que pertenece este subproceso.
30) Cuerda Encadenar() Se utiliza para devolver una representación de cadena de este hilo, incluido el nombre, la prioridad y el grupo de hilos del hilo.
31) vacío notificar() Se utiliza para dar la notificación para un solo hilo que está esperando un objeto en particular.
32) vacío notificar a todos () Se utiliza para dar la notificación a todos los subprocesos en espera de un objeto en particular.
33) vacío setContextClassLoader () Establece el ClassLoader de contexto para el Thread.
34) ClassLoader getContextClassLoader () Devuelve el ClassLoader de contexto para el hilo.
35) static Thread.UncaughtExceptionHandler getDefaultUncaughtExceptionHandler () Devuelve el controlador predeterminado que se invoca cuando un hilo termina abruptamente debido a una excepción no detectada.
36) hoyo estatico setDefaultUncaughtExceptionHandler () Establece el controlador predeterminado que se invoca cuando un subproceso termina abruptamente debido a una excepción no detectada.
Lo sabías
  • ¿Cómo realizar dos tareas por dos hilos?
  • ¿Cómo realizar subprocesos múltiples por clase anónima?
  • ¿Qué es Thread Scheduler y cuál es la diferencia entre la programación preventiva y la división de tiempo?
  • ¿Qué pasa si iniciamos un hilo dos veces?
  • ¿Qué sucede si llamamos al método run () en lugar del método start ()?
  • ¿Cuál es el propósito del método de unión?
  • ¿Por qué JVM termina el subproceso del demonio si no quedan subprocesos de usuario?
  • ¿Qué es el gancho de cierre?
  • ¿Qué es la recolección de basura?
  • ¿Cuál es el propósito del método finalize ()?
  • ¿Qué significa el método gc ()?
  • ¿Qué es la sincronización y por qué utilizar la sincronización?
  • ¿Cuál es la diferencia entre el método sincronizado y el bloque sincronizado?
  • ¿Cuáles son las dos formas de realizar la sincronización estática?
  • ¿Qué es el punto muerto y cuándo puede ocurrir?
  • ¿Qué es la comunicación o cooperación entre hilos?
Que aprenderemos en Multithreading
  • Subprocesos múltiples
  • Ciclo de vida de un hilo
  • Dos formas de crear un hilo
  • Cómo realizar múltiples tareas por múltiples subprocesos
  • Programador de subprocesos
  • Durmiendo un hilo
  • ¿Podemos iniciar un hilo dos veces?
  • ¿Qué sucede si llamamos al método run () en lugar del método start ()?
  • Uniendo un hilo
  • Nombrar un hilo
  • Prioridad de un hilo
  • Hilo de demonio
  • ShutdownHook
  • Recolección de basura
  • Sincronización con método sincronizado
  • Bloque sincronizado
  • Sincronización estática
  • Punto muerto
  • Comunicación entre hilos

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Desbordamiento de CSS

C – Sintaxis básica