Red de conocimiento informático - Problemas con los teléfonos móviles - [Puntuación alta, urgente] Lenguaje C, cómo implementar subprocesos múltiples. Si tiene planes específicos, ¡proporciónelos!

[Puntuación alta, urgente] Lenguaje C, cómo implementar subprocesos múltiples. Si tiene planes específicos, ¡proporciónelos!

Su pregunta tiene una puntuación superior a 200.

Este es un plan de diseño relativamente complejo en el gran esquema de las cosas.

De hecho, el lenguaje C no tiene el concepto de subprocesos múltiples, pero podemos implementar la multitarea a través de Task.

En pocas palabras, se puede adoptar la siguiente solución:

Defina una tarea principal y configúrela como tarea residente para la programación de tareas, el inicio/finalización de tareas y la gestión de interacciones.

Defina una lista de prioridades de tareas y utilice la prioridad como base para la programación y gestión de tareas.

Defina un dominio compartido y el correspondiente mecanismo de gestión de distribución/transmisión/entrega de eventos, y la tarea principal implementa la entrega de eventos entre tareas.

Definir 3 Listas para implementar la gestión y programación de Tareas Activas, Listas y Muertas.

Defina cada tarea ordinaria, incluida la información básica de la tarea: puntero de la pila de tareas, información de la tarea, tamaño del espacio de almacenamiento de la tarea, prioridad de la tarea, lista de eventos de la tarea (defina los eventos que se pueden recibir/enviar y los eventos (que puede ser el número de eventos en cola) y, si es necesario, se puede definir la relación de dependencia (padre-hijo) de la tarea.

También hay varios puntos a tener en cuenta:

1. Los requisitos de procesamiento atómico de ciertas tareas se realizan a través de la sección crítica de C combinada con operaciones fotovoltaicas.

2. Interrumpa y reinicie a través de Signal

3. Si necesita manejar la interrupción y el reinicio, asegúrese de prestar atención a la protección en el sitio.

4.

Eso es todo lo que se me ocurre por ahora. Si no entiende nada, comuníquese más a través de mensajes :)

.