Un artículo le permite leer el significado de la alta programación concurrente y sus beneficios y consideraciones.

Debido al nacimiento de CPU multi-core y multi-thread, la programación multi-thread y altamente concurrente ha recibido cada vez más atención y atención. Multithreading puede aportar los siguientes beneficios al programa.
(1) Aproveche al máximo los recursos de la CPU.
Desde la introducción de la CPU anterior, se puede ver que los núcleos que no tienen CPU en el mercado no usan sistemas concurrentes de subprocesos múltiples
, especialmente si el servidor tiene más de una CPU. Si todavía usa la tecnología de un solo hilo Pensando, obviamente fuera. Debido a que la unidad básica de programación del programa es un subproceso, y un subproceso solo puede ejecutarse en un subproceso de un núcleo de una CPU, si usted es una CPU i3, lo peor es la potencia de cálculo de los subprocesos de doble núcleo 4; si es un subproceso Programa, es un desperdicio de 3/4 del rendimiento de la CPU; si diseña un programa multiproceso, entonces puede ejecutarse en múltiples hilos con múltiples núcleos en múltiples CPU al mismo tiempo, haciendo uso completo de la CPU, Reduzca el tiempo de inactividad de la CPU, aproveche al máximo su potencia informática y aumente la cantidad de concurrencia.

Al igual que usualmente tomamos el metro, muchas personas leen el libro en serio cuando toman el metro de larga distancia, en lugar de tomar el metro para tomar el
metro. Cuando llegue a casa, lea el libro, por lo que su tiempo es equivalente a dos veces. Esta es una de las razones por las que algunas personas tienen mucho tiempo, y otras siempre dicen que no hay tiempo. Este también es el caso con el trabajo. A veces podemos hacer varias cosas al mismo tiempo para aprovechar al máximo nuestro tiempo. Lo mismo es cierto para la CPU. Uso
(2) Acelere el tiempo de respuesta para los usuarios. Por
ejemplo, la descarga de Thunder que usamos a menudo, como abrir algunos hilos más para descargar, nadie quiere usar un hilo para descargar,
¿por qué? La respuesta simple es que múltiples hilos se descargan rápidamente.
Este debería ser el caso cuando desarrollamos programas, especialmente cuando realizamos proyectos de Internet. Si el tiempo de respuesta de la página web aumenta en ls,
si el tráfico es grande, puede aumentar muchas conversiones. Cualquiera que haya realizado un ajuste de front-end web de alto rendimiento sabe que las direcciones de recursos estáticos deben cargarse con dos o tres subdominios. ¿Por qué? Debido a cada nombre de subdominio adicional, el navegador abrirá algunos hilos más para cargar los recursos de su página al cargar su página, mejorando la velocidad de respuesta del sitio web. Multihilo, alta concurrencia está realmente en todas partes.

(3) Puede hacer que su código sea modular, asíncrono y simplificado.
Por ejemplo, cuando realizamos el desarrollo del programa de Android, la parte de visualización de la interfaz de usuario del hilo principal es una parte del programa de código principal, pero los botones de la interfaz de usuario utilizan los controladores de eventos correspondientes Puede hacerlo como un programa de módulo separado. Esto no solo aumenta las operaciones asincrónicas, sino que también hace que el programa sea modular, claro y simple. El mecanismo de procesamiento de programas asíncronos más popular hoy en día es el mejor ejemplo de aplicación de programas multiproceso y concurrentes.
Creo que hay muchos beneficios del desarrollo de aplicaciones multiproceso, y todos pueden apreciar lentamente su encanto en el futuro proceso de escritura de código
.
A continuación, hablemos sobre los problemas de alta concurrencia y subprocesos múltiples:
(1) Seguridad entre subprocesos
Como todos sabemos en el capítulo anterior, los recursos comparten múltiples subprocesos en el mismo proceso, es decir, se puede acceder a todos
Una variable en la misma dirección de memoria. Por ejemplo: si cada hilo de variables globales, las variables estáticas de sólo lectura, no operación de escritura, en general, la variable global es thread-safe: si múltiples hilos simultáneamente realizar operaciones de escritura, se requieren en general a la prueba de
hilo considerado Sincronización, de lo contrario puede afectar la seguridad del hilo.
Explicaremos esto en detalle en capítulos posteriores.
(2) El proceso de bucle sin fin
entre subprocesos introduce el mecanismo de bloqueo de Java para resolver la seguridad entre subprocesos, y accidentalmente causará el problema de subprocesamiento múltiple de subprocesos de subprocesos de Java, porque diferentes subprocesos están esperando esos fundamentales Es imposible liberar el bloqueo, por lo que no se puede completar todo el trabajo. Supongamos que hay dos hilos, que representan a dos personas hambrientas, deben compartir el cuchillo y el tenedor y turnarse para comer. Ambos necesitan obtener dos cerraduras: un cuchillo compartido y una cerradura de horquilla compartida.
Supongamos que el hilo A obtiene el cuchillo y el hilo B obtiene el tenedor. Un hilo entrará esperar a llegar tenedor bloqueado, y una línea de
la trayectoria B está bloqueado a la espera de hilo Un cuchillo de propiedad. Este es solo un ejemplo de diseño humano, pero aunque es difícil de detectar en tiempo de ejecución, este tipo de situación a menudo ocurre.

(3) Demasiados subprocesos agotarán los recursos del servidor
y provocarán un bloqueo . Demasiados subprocesos pueden hacer que el sistema cree una gran cantidad de subprocesos y que se consuma la memoria del sistema y el "cambio de transición" de la CPU hará
que el sistema se bloquee. Entonces, ¿cómo lo hacemos? ¿Resolver este tipo de problema?
Algunos recursos del sistema son limitados, como los descriptores de archivos. programa multi-roscado puede quedarse sin recursos, ya que cada hilo podría querer
espero que haya un recurso tan. Si el número de subprocesos es bastante grande, o el número de subprocesos candidatos para un recurso supera con creces el número de recursos disponibles, es mejor usarlo. Un mejor ejemplo es el grupo de conexión de base de datos. Mientras el hilo necesite usar una conexión de base de datos, toma una del grupo y la devuelve al grupo después de su uso. El grupo de recursos también se llama. Primero hay un concepto, y el concepto de grupo de subprocesos se discutirá gradualmente más adelante.
Existen muchas precauciones para el desarrollo de aplicaciones de subprocesos múltiples, y espero que pueda apreciar lentamente sus peligros en su trabajo futuro.

 

Supongo que te gusta

Origin www.cnblogs.com/yangyang7899/p/12677617.html
Recomendado
Clasificación