¿Qué es el subproceso múltiple?
La ventaja del subproceso múltiple es que puede mejorar la utilización de la CPU: ningún programador quiere que su programa no tenga nada que hacer durante mucho tiempo. En un programa de subprocesos múltiples, cuando un subproceso debe esperar, la CPU puede ejecutar otros subprocesos en lugar de esperar, lo que mejora enormemente la eficiencia del programa.
Sin embargo, también debemos darnos cuenta de que para utilizar los subprocesos correctamente, los propios subprocesos pueden afectar los aspectos adversos del rendimiento del sistema:
Los subprocesos también son programas, por lo que deben ocupar Cuanto más memoria, más memoria se ocupa.
Múltiples subprocesos requieren coordinación y gestión, por lo que se requiere tiempo de CPU para realizar un seguimiento de los subprocesos.
El acceso de los hilos a * * * recursos se afectará entre sí, por lo que el problema de competir por * * * recursos debe resolverse.
Demasiados subprocesos harán que el control sea demasiado complejo, lo que eventualmente puede generar muchos errores.
Basándonos en la comprensión anterior, podemos utilizar una metáfora para profundizar nuestra comprensión. Supongamos que hay una empresa con muchos empleados desempeñando sus funciones, entonces podemos pensar en esta empresa normal como un proceso y los empleados de la empresa son hilos. Una empresa debe tener al menos un empleado. De manera similar, un proceso contiene al menos un hilo. En una empresa, puede hacer que un empleado haga todo, pero obviamente la eficiencia no es alta y una empresa unipersonal no puede crecer. Un programa también puede usar un solo hilo para hacer las cosas; De hecho, algunos lenguajes obsoletos como Fortune y Basic son así, pero como empresa, la eficiencia es muy baja. Si crea un programa grande, la eficiencia será aún menor; de hecho, ahora casi no existe software comercial de un solo subproceso. Cuantos más empleados tiene una empresa, más salarios tiene que pagarles el jefe, y hay que gastar mucha energía en gestionarlos y coordinar sus conflictos e intereses. Lo mismo ocurre con los programas. Cuantos más subprocesos, más recursos se consumen, se requiere tiempo de CPU para realizar un seguimiento de los subprocesos y se deben resolver problemas como los interbloqueos y la sincronización. En resumen, si no quiere que su empresa se llame "empresa de bolsas de piel", debe tener más empleados; si no quiere que su programa parezca infantil, introduzca subprocesos múltiples en su programa.
Este artículo analizará el mecanismo de subprocesos múltiples en la programación de C# y resolverá los problemas de control de subprocesos y comunicación entre subprocesos a través de algunos ejemplos. Para ahorrar los tediosos pasos de crear una GUI y abordar la naturaleza de los subprocesos con mayor claridad, los siguientes programas son todos programas de consola, la última consola. ReadLine() del programa lo detiene a mitad de camino para que el resultado durante la ejecución se pueda ver claramente.