Hemos comenzado a implementar este artículo para crear un archivo C recientemente generado. Este archivo se puede crear utilizando la instrucción "táctil" de Ubuntu dentro de su shell. Es bastante fácil hacerlo como lo hicimos en el comando que se muestra en la captura de pantalla adjunta. Hay varios editores incorporados disponibles en Ubuntu para simplemente abrir y editar el código C. Hemos utilizado el editor "nano" incorporado en una terminal de Ubuntu 20.04 Uso de la palabra clave "nano" en las instrucciones.
Ejemplo 01:
Por lo tanto, estamos comenzando nuestro primer ejemplo de usar la función pthread_elf () en el código C para obtener la "ID" de un hilo en Ubuntu 20.04. Hemos inicializado el código con encabezados simples. Estos encabezados son las necesidades del código C. Sin estos encabezados, nuestro código no sirve de nada, y no podremos obtener el resultado requerido. Hemos incluido el encabezado "stdio" para tomar la entrada estándar en nuestro código. El archivo de encabezado de la biblioteca estándar también se usa. Mientras tanto, el archivo de encabezado principal es "PThread", que se ha incluido para usar la biblioteca de subprocesos POSIX estándar y sus funciones en el código C.
Después de incluir las bibliotecas, hemos utilizado la función de subproceso definida por el usuario llamada "Tarea" que toma la referencia del puntero a la "ID" de un hilo creado en la función principal. Dentro de esta función de la tarea, utilizamos la cláusula PrintF para emitir una declaración que demuestre que estamos ejecutando el hilo que tiene un "ID particular."El hilo" ID "que se ha obtenido del uso de la función" pthread_elf "en esta declaración se mostrará junto con el texto en el shell a través de la cláusula" printf ".
La función "pthread_exit" se utiliza aquí para salir del subproceso creado y return null a la función principal, como se muestra en la cláusula "return" de la función "tarea". Aquí viene el código de ejecución principal de un archivo. La ejecución del código C siempre se iniciará desde su función principal (). La función Main () está utilizando la variable "pThread_t" de Posix para obtener la ID de un hilo creado por la función "pthread_create" dentro de la "th" mutable mutable. La cláusula simple "printf" se deseche aquí para emitir en el terminal que la función principal se ha estado ejecutando o ejecutándose en este momento. Después de esto, la función "pthread_create" está aquí para crear un nuevo hilo. La variable "TH" se ha hecho referencia aquí para identificar este hilo por su ID y obtener parámetros nulos. Se ha llamado a la función "Tarea" aquí para usarla como ejecutor de subprocesos o mostrar información sobre el ID de subproceso. La función de la tarea no está tomando argumentos según el nulo. Después de que la función "tarea" se ejecuta y devuelve "nula", la función pthread_join () se usa aquí para detener o colgar el hilo de llamadas mientras espera que el hilo dirigido se complete o termine. El código C para pthread_self () se completa y compila en el shell.
Usemos el compilador "GCC" que ya se ha instalado en nuestro Ubuntu 20.04 sistema. Su código no generará lo requerido en el shell sin él. Entonces, debes obtener el compilador "GCC". La compilación de pthread_elf () es tremenda, y estamos listos para ejecutar el código. El código de ejecución se usa como una sola palabra clave "./a.Fuera "como se muestra. Puede ver que la función principal se ejecutó primero y creó un hilo. A través de este hilo, se llama la función de "tarea", y muestra la ID de subproceso en el shell. Se completó la función de la tarea y se terminó el hilo principal (). Así es como funciona la función "pthread_elf".
Ejemplo 02:
Tomemos otra ilustración para echar un vistazo a la función "pthread_self ()" en el código C. Para eso, estaremos actualizando el mismo "yo.Archivo C ”que se acaba de usar en el ejemplo anterior. Abriremos el archivo dentro del editor de Ubuntu llamado "Nano" como se muestra debajo.
El código se inicia de nuevo con algunos encabezados. Se utiliza el encabezado de salida de entrada estándar para obtener la entrada y mostrarlo. Las bibliotecas "unistd" y "stdlib" se utilizan para utilizar algunas funciones estándar dentro del código. La biblioteca "pthread" es imprescindible para utilizar aquí para usar las funciones "Posix" en el código. Hemos definido el número de hilos utilizando los "hilos" de POSIX en el código después de las bibliotecas que usan la instrucción "if" y el uso de la palabra clave "#define". Se usa para restringir el número de subprocesos utilizados en el código para no más de 3. Después de la declaración de subprocesos, hemos utilizado la función definida por el usuario "Pantalla" del tipo de puntero se ha declarado. Esta función toma el argumento "P" del tipo de puntero. Se declara la variable de tipo largo "ID".
En la siguiente línea, el valor variable de puntero de referencia se convierte en tipo "largo" y se ha asignado a la variable "ID."La cláusula Printf usa el número de subproceso y la ID para mostrar en el shell usando" LD "y" Lu "en el texto. Después de esto, el hilo ha sido salido. Ahora, la función principal () se declara con dos argumentos. El "pthread_t" se usa para inicializar la lista "th" que tiene un tamaño de 3 hilos usando "hilos" ya declarado. Luego se declara una variable entera "res", y se ha iniciado el bucle "para". Se ejecutará hasta 3 veces y se crearán tres hilos utilizando la función "pthread_create". Esta función utiliza las ID de tres hilos consecutivamente, uno tras otro, y la función de visualización usa esas ID como su argumento para "P."Si se produjo algún error debido al método de" visualización ", el hilo no se completa con éxito. Devolverá el error a la variable de las funciones principales "res". Si se produce un error, la instrucción "printf" mostrará ese error utilizando la variable "res" en la instrucción "if". Después de eso, la declaración y el programa IF se terminarán.
Ahora, ya es hora de guardar y compilar este código C en el sistema. Para ahorrar, use "Ctrl+S" mientras permanece en el editor. Use "Ctrl+X" para salir del editor de código C. Después del comando de compilación "GCC", el uso en el shell tuvo éxito. Ejecutamos este código con el "./a.Out ", y la salida muestra las ID de tres hilos diferentes consecutivamente.
Conclusión:
Este artículo ha sido cubierto los ejemplos simples y directos del uso de la función pthread_join () de la biblioteca POSIX en c. En primer lugar, hemos explicado el uso de la función "pthread_join ()" de Posix en el idioma C. Después de eso, hemos discutido algunos de los ejemplos para ilustrar su trabajo en el programa C. Tenemos fe en que todos los ejemplos son notables y se implementan fácilmente en el editor de Linux y se ejecutan en el shell.