Red de conocimiento informático - Material del sitio web - Parámetros de pthread_create multiproceso

Parámetros de pthread_create multiproceso

El lenguaje C utiliza la función pthread_create() para crear subprocesos múltiples. La función pthread_create() * * * tiene cuatro parámetros. Los cuatro parámetros son:

El primer parámetro es responsable de pasar el número de hilo del hilo secundario a la persona que llama.

En segundo lugar, este parámetro es responsable de controlar varias propiedades del hilo y también es el parámetro más complejo al crear un hilo. La siguiente es la definición de la estructura:

El primer parámetro detachstate en la estructura describe el estado de separación del hilo.

PTHREAD_CREATE_DETACHED estado separado: después de que el hilo principal crea un hilo secundario, el hilo principal no esperará a que el hilo secundario se complete antes de ejecutar su siguiente programa.

Estado PTHREAD_CREATE_JOINABLE: el padre; El subproceso esperará a que el subproceso secundario se complete y luego pasará al siguiente programa.

Tenga en cuenta que una vez que el hilo está en el estado PTHREAD_CREATE_DETACHED, el estado del hilo no se puede modificar. La configuración predeterminada para la creación de subprocesos es el estado PTHREAD_CREATE_JOINABLE.

Schedpolicy describe la política de programación de subprocesos. Este valor se puede establecer en:

Primero en entrar, primero en salir

SCHED_RR: método de rotación

SCHED_OTHER: Otros métodos

El parámetro schedparam en realidad establece la prioridad del hilo. Este parámetro solo es válido cuando la política de programación es en tiempo real (es decir, SCHED_RR o SCHED_FIFO).

Este parámetro establece si los parámetros de programación del hilo se copian de los parámetros de programación del hilo principal, o si se configuran los dos parámetros anteriores, schedpolicy y schedparam.

Este parámetro se puede establecer en:

PTHREAD_INHERIT_SCHED: Indica que el nuevo hilo existente heredará la política de programación y los parámetros del hilo creador).

PTHREAD_EXPLICIT_SCHED: Indica utilizar la política de programación y los parámetros establecidos explícitamente en los atributos schedpolicy y schedparam.

El parámetro de alcance establece el rango de prioridad del subproceso.

PTHREAD_SCOPE_PROCESS recursos de competencia a nivel de proceso

PTHREAD_SCOPE_SYSTEM recursos de competencia a nivel de sistema

Este parámetro es la dirección inicial de la pila de subprocesos. Este parámetro solo debe configurarse cuando se crea la pila de subprocesos. Cuando la pila de subprocesos la crea directamente el usuario en lugar de a través del sistema, el tamaño y la ubicación de la pila de subprocesos se pueden modificar, pero el programa de usuario necesita liberar el espacio de la pila de subprocesos. Cuando se establece este parámetro, el tamaño del búfer de pila de alertas de tamaño de guardia pasará a ser 0. Para evitar el desbordamiento de la pila, es necesario establecer el búfer de pila límite de la pila de subprocesos.

Este parámetro establece el tamaño del búfer de la pila de alertas. Proteger el búfer de pila protege el programa de desbordamientos de pila y corrupción de datos.

El parámetro stacksize se crea antes de la creación del subproceso y se utiliza para modificar el tamaño de la pila del subproceso creado, pero el valor mínimo no puede ser inferior a pthread_stack_min (16384) bytes, es decir, el tamaño de la memoria es 16k , que son 4 páginas de memoria (4 páginas de memoria están determinadas por el kernel).

Este parámetro es responsable de especificar las funciones que el hilo secundario debe permitir. Este parámetro requiere un puntero de función.

Este parámetro es responsable de especificar el valor del parámetro de la función ejecutada por el hilo secundario.