Pthread_create 3 C Función

Pthread_create 3 C Función
"Dentro de un proceso, un hilo es un flujo de canal pequeño. Debido a que comparten muchas de las propiedades de los procesos, los hilos a menudo se consideran operaciones livianas. Debido a que los hilos, con la excepción de los procesos, no son completamente autónomos, comparten sus scripts, datos y características del sistema operativo, como archivos abiertos y señales con otros hilos. Sin embargo, un hilo, como una tarea, tiene su contador de programa (PC), configuración de registro y memoria de pila. Varias sesiones dentro de un navegador, por ejemplo, pueden representar hilos distintos."

MS Word usa muchos hilos, uno para formato textual, otro para procesar entradas, etc. Dentro de este artículo, le informaremos sobre el uso de la función pthread_create 3 C para crear un hilo utilizando el sistema Kali Linux. Comencemos dentro del caparazón de Kali Linux ahora. Necesitamos crear un nuevo archivo C dentro del cual creemos un programa C para hilos. Por lo tanto, podemos usar la instrucción táctil para crear con el título "Crear hilo" y ".Extensión C "al final. El archivo se ha creado con éxito según la lista de instrucciones "LS" y muestra el contenido de un directorio de trabajo actual.

Para abrir este archivo en un editor VIM para crear código, hemos estado utilizando la instrucción "VIM" como se muestra a continuación. El comando debe contener el nombre completo de un archivo junto con la palabra clave "VIM". El editor VIM vacío abrirá su archivo C correctamente.

Ejemplo 01

Es hora de crear un ejemplo para la función pthread_create para hacer un nuevo hilo dentro del script C. Para esto, comenzaremos nuestro código C con las principales bibliotecas estándar incluidas con la palabra clave "#include". Para el flujo de entrada y salida estándar dentro del programa, necesitamos el "STDIO.H "biblioteca junto con el" stdlib.h "y" unistd.H ”Biblioteca.

Junto con eso, hemos estado usando el "Pthread.H ”Biblioteca de C para utilizar funciones de hilo en nuestro código C. Sin esta biblioteca, el uso de funciones PTHREAD podría causar errores. Hemos inicializado una variable global "global" y le asignamos un valor "0" al comienzo del código después de los encabezados. Esta variable se utilizará en el resto del código.

Comencemos con la explicación de este código con la función Main () de este código. El hilo principal ha estado declarando una variable variable "var" y "threadid" para el hilo utilizando la palabra clave "pthread_t."El bucle" para "de 5 iteraciones se ha utilizado para crear un hilo 5 veces con el uso de la función" pthread_create "dentro de ella. Lo hemos estado pasando como una variable "Threadid" para contar el número de hilo y transmitirlo una función de hilo "func" dentro de él con el mismo puntero variable "threadid".

Después de la creación de 5 hilos usando el bucle "para", estaremos fuera del bucle, y la función "pthread_exit" se utilizará para salir de las ejecuciones del hilo y terminar el programa. Ahora, echemos un vistazo a la función del puntero de hilo "func", tomando el hilo "id" del método main () al título en consecuencia. El argumento "ID" aprobado por el Main () se guardaría en el puntero "Threadid" del tipo entero. Una variable entera estática "var" se inicializa a 0, y hemos estado después de incrementar el valor de las variables "var" y "global."

Debido al posterior al incremento, el valor se incrementaría primero, yo.mi., "ID" y luego guardado en la variable. La instrucción printf está aquí para mostrar el ID de subproceso, el valor de la variable estática y el valor de la variable global a la vez. Los valores para hilos serían 2, 4, 6, 8 y 10. Guardemos nuestro código y veamos qué sucede después de la compilación.

En primer lugar, compilaremos este código C con el compilador "GCC" junto con el comando "-lpThread" para la función de subproceso de Linux que contiene la opción "-o" para crear el archivo de ejecución "Createthread.fuera ", como se muestra a continuación. El archivo ha sido compilado y creado con éxito.

Ejecutemos el archivo de ejecución sin error compilado con el "./"Comando como se muestra a continuación. Las salidas de 5 subprocesos han estado mostrando el ID de subproceso, el valor de la variable estática y el valor variable global con el incremento de 2.

Ejemplo 02

Dentro de este ejemplo, utilizaremos el mismo formato de código. Comenzando desde el método main (), hemos creado dos variables enteras y una variable "Thread_id" con la palabra clave "pthread_t". La variable "ThreadID" ha estado tomando información de un método main () utilizando la función "pthread_elf ()" y transmitirla a la función "func" que se ha utilizado para crear un nuevo hilo a través de la función "pthread_create ()". Cualquiera que sea el hilo recién creado se guardará en la variable "Createreturn" y se verifica dentro de la declaración "IF". Si ocurre algún error, usará la instrucción printf para mostrar eso, y el programa se finalizará. De lo contrario, después de la creación de un hilo, el programa duerme durante 1 segundo y usa la instrucción printf para mostrar que el hilo se ha creado con éxito.

Después de eso, el programa será finalizado. La función de hilo func () mostrará su información de subprocesos utilizando la función pthread_elf () y los datos de la función main () aprobada por el argumento como se muestra usando la función printf.

Hemos compilado este archivo y creamos un archivo de código fuente de ejecución con la instrucción "GCC".

Después de la ejecución, tenemos la identificación de información de la función func () y el hilo principal () también.

Cada vez, la ejecución de este programa generará diferentes datos para ambos hilos.

Conclusión

Los hilos son un enfoque común para promover la sincronicidad en aplicaciones. Los hilos se ejecutan más rápido que las tareas para una variedad de factores, yo.mi., La generación de hilos es mucho más rápida, el cambio de contexto entre los subprocesos parece ser mucho más rápido, la terminación de hilos es mucho más fácil y la interacción de los hilos es significativamente más rápida. Dentro de este artículo, hemos discutido el uso de la función pthread_create junto con otras funciones de hilo para mostrar eso. Esperamos que os guste.