En el artículo anterior, introduje el método de implementación de Java Multi-Threading.
En primer lugar, déjame decirte las ventajas y desventajas de la múltiples subprocesos
Ventajas de múltiples lectura:
1) Mejor utilización de recursos
2) La programación es más simple en algunos casos
3) El programa responde más rápido
El costo de la lectura múltiple:
1) Diseño más complejo
Si bien algunas aplicaciones multiproceso son más simples que las aplicaciones de un solo hilo, otras son generalmente más complejas. Esta parte del código necesita atención especial al acceder a datos compartidos a través de múltiples hilos. La interacción entre hilos a menudo es muy compleja. Los errores generados por la sincronización incorrecta de hilos son muy difíciles de detectar y reproducir para solucionar.
2) Sobre el cambio de contexto
Cuando la CPU cambia de ejecutar un hilo a ejecutar otro hilo, primero debe almacenar los datos locales del hilo actual, los punteros del programa, etc., luego cargar los datos locales de otro hilo, punteros del programa, etc., y finalmente comenzar ejecución. Esta conmutación se llama "Switch de contexto". La CPU ejecuta un hilo en un contexto y luego cambia a otro contexto para ejecutar otro hilo. El cambio de contexto no es barato. Si no es necesario, el cambio de contexto debe reducirse.
Hay dos tecnologías clave para definir e iniciar hilos:
Primero: la clase de subprocesos debe implementar la interfaz java.lang.runnable o heredar la clase java.lang.thread, y ambos deben implementar el método de ejecución, donde el método Ejecutar no tiene entrada, ni salida ni excepciones.
Segundo: llame al método de inicio de la clase de subproceso para iniciar el hilo.
prueba de paquete; import java.util.vector; import java.util.date;/*** Instancia de prueba de hilo* @author sigue fluyendo**/public class Threadnew {/**** @author sigue siendo el flujo de agua*** / class Thread extiende el hilo {tiempo de ejecución de la fecha privada; ); Date (); * */public void startb () {runnable Threadb = new Threadb (); [] args) {ThreadNew test = new ThreadNew ();