Vi en un libro de Linux que la programación multiproceso debe evitar el acceso simultáneo a los mismos datos para garantizar la seguridad de la lectura y escritura de datos.
1. Ejecute varios subprocesos en un proceso, utilice el mismo espacio de direcciones entre sí y comparta la mayoría de los datos.
2. El espacio necesario para iniciar un hilo es mucho menor que el espacio necesario para iniciar un proceso.
3. El tiempo necesario para cambiar entre subprocesos es mucho menor que el tiempo necesario para cambiar entre procesos.
4. Los diferentes procesos tienen espacios de datos independientes y los datos solo se pueden transferir a través de la comunicación. --Consumo de tiempo e inconveniente
Los subprocesos en un proceso unificado comparten espacio de datos y los datos de un subproceso pueden ser utilizados directamente por otros subprocesos. --Rápido y conveniente
5. Cosas a tener en cuenta al escribir subprocesos múltiples:
Algunas variables no pueden ser modificadas por dos subprocesos al mismo tiempo
En subrutinas Los datos declarados como estáticos pueden acarrear golpes catastróficos a los subprocesos múltiples
6. Ventajas de los subprocesos múltiples:
1) Mejorar la capacidad de respuesta de la aplicación y colocar las operaciones de larga duración en un nuevo subproceso para Evite esperar.
2) Hacer que los sistemas CPU multinúcleo sean más eficientes.
3) Mejorar la estructura del programa. Los procesos largos y complejos se pueden dividir en múltiples subprocesos.
7. El proceso es la unidad básica de asignación de recursos y los subprocesos no tienen recursos. *** Compartir recursos de proceso
8. La función de volátil es: como palabra clave de instrucción, garantiza que esta instrucción no se omitirá debido a la optimización del compilador y requiere la lectura directa del valor cada vez.