Red de conocimiento informático - Material del sitio web - ¿Cómo crear un hilo? ¿Cómo garantizar la seguridad del hilo?

¿Cómo crear un hilo? ¿Cómo garantizar la seguridad del hilo?

Método 1 para crear un hilo: Heredar la clase Thread (debido a las características de herencia única de Java, este método rara vez se usa)

Pasos:

1. Herede la clase Thread y luego anule el método de ejecución

Haga clic para ingresar la descripción de la imagen

2. Cree un objeto de subclase y luego llame al método start() para. iniciar el hilo

Haga clic para ingresar la descripción de la imagen

Podemos ver que aquí solo se ha creado un hilo, entonces, ¿qué debemos hacer si queremos crear varios hilos? Cree subprocesos heredando Thread. Si desea crear varios subprocesos diferentes, primero debe crear varias clases diferentes que hereden Thread y luego crear subprocesos de acuerdo con los pasos 1 y 2 anteriores. Esto obviamente es un poco problemático para mostrar muchos. Hilos, primero agregamos un hilo principal al hilo anterior, que es el hilo ejecutado en el método principal. De la siguiente manera:

Haga clic para ingresar la descripción de la imagen

Método 2 para crear un hilo: implementar la interfaz Runnable (Java puede implementar múltiples interfaces, este método se usa comúnmente)

Pasos:

1. Cree una clase para implementar la interfaz Runnable y luego anule el método de ejecución

Haga clic para ingresar la descripción de la imagen

2. Cree el objeto de clase de implementación y el objeto de clase proxy, y luego el objeto de clase proxy llama al método start() para iniciar el hilo

Utilice la interfaz Runnable para implementar subprocesos múltiples:

"Simulación del sistema de captura de tickets", el código es el siguiente:

Cuando un hilo llama al método start(), no significa ejecución inmediata, pero entra en estado listo y espera. para la programación de la CPU, por lo que los resultados de cada ejecución son diferentes.

La tercera forma de crear un hilo: implementar la interfaz invocable en el paquete java.util.concurrent (versión avanzada, para que los principiantes la comprendan)

Pasos:

1. Cree una clase que implemente la interfaz invocable y luego anule el método call()

(A diferencia del método de ejecución, el método de llamada puede tener un valor de retorno y generar una excepción)

2. Cree el objeto de clase de implementación de Callable--"Crear el servicio de ejecución--"Enviar el servicio de ejecución para obtener el objeto Futuro--"Obtener el resultado--"Detener el servicio