programación Capítulo 9-hilo (1) _ concepto hilo y la identificación hilo

1. Introducción

1.1  El concepto de hilos

(1) proceso es la gestión de recursos unidad más pequeña, el hilo se ejecuta la unidad más pequeña

(2) Cada proceso tiene sus segmentos propio segmento de datos, de código, y la pila . Hilo a menudo llamado proceso ligero, que incluye un estado de la pila y CPU registros separados, el hilo es un camino de proceso de ejecución, todos los hilos comparten los recursos de cada uno de su proceso de subsidiaria , incluyendo archivos abiertos, de paginación de memoria, la identificación de la señal y la asignación dinámica memoria y así sucesivamente.

(3) debido a que los hilos y procesos en comparación con pequeño, por lo relativamente hablando, hilo pasa menos recursos de la CPU .

(4) sobre el funcionamiento de diseño del sistema, de la rosca proceso evolucionado, el propósito principal es el de mejor soporte multi-procesador, proceso y reducir la sobrecarga de cambio de contexto.

1.2  relación entre hilos y procesos

(1) forma parte de la rosca proceso, el hilo que se ejecuta en el espacio de proceso , el mismo proceso comparten el mismo espacio de memoria de usuario .

(2) Cuando las salidas de proceso, el hilo de proceso producida se verán obligados a dejar de fumar y claro.

(3) un proceso requiere al menos un hilo de ejecución como su comando, el proceso de gestión de recursos (como la CPU, memoria, archivos, etc.). Y el hilo asignado a una CPU.

1.3  clasificación hilo

(1) su programación de subprocesos se puede dividir en hilos a nivel de usuario y las discusiones de nivel de núcleo dos tipos.

  ① hilos a nivel de usuario: El principal problema es el problema de cambios de contexto, su programación está determinada por el usuario.

  ② hilos a nivel del núcleo: implementadas por el mecanismo de kernel de programación.

(2) Ahora la mayoría de los sistemas operativos han adoptado el método hilos a nivel de usuario y los hilos de nivel de núcleo co-existir.

(3) hilos a nivel de usuario a los hilos de nivel de núcleo se unen ejecutan un proceso hilos de nivel de núcleo se asignan a un intervalo de tiempo fijo, el segmento de tiempo asignado a los hilos a nivel de usuario a los hilos del núcleo prevalecer.

(3) De manera predeterminada, las discusiones a nivel de usuario y las discusiones a nivel del núcleo es de uno a uno, muchos-a-ser, por lo que en tiempo real será relativamente pobres.

(4) Cuando se asigna la CPU a un hilo de tiempo rebanada expira, pero el hilo no está terminado , entonces el hilo se devuelve desde el estado de funcionamiento al estado preparado , la CPU dan otros hilos.

1.4 Linux implementar los hilos

(1) Los siguientes hilos de rosca son hilos a nivel de usuario. En Linux, la biblioteca de acceso y control del hilo pthread en general a implementar los hilos proporcionadas por POSIX, tiene buena portabilidad

(2) programas de rosca Linux compilados en la necesidad de biblioteca de vínculos gcc pthread , tales como -O test.o test.c gcc  -lpthread

1,5  identificador de hilo

(1) diferentes hilos dentro de cada proceso tiene su propia identificación única (ID)

(2) identificación de rosca es válida sólo en el proceso de establecimiento pertenece.

(3) un identificador de hilo pthread_t tipo de datos

encabezamiento

# include <pthread.h>

función

int pthread_equal (pthread_t, pthread_t); // devolver un no igual a 0, y 0 en caso contrario.

pthread_self pthread_t (void);  // devuelve el identificador de hilo de la rosca de llamada.

 

发布了25 篇原创文章 · 获赞 4 · 访问量 2万+

Supongo que te gusta

Origin blog.csdn.net/zhou8400/article/details/97641701
Recomendado
Clasificación