1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
#include <stdlib.h> #include <pthread.h> #include <stdio.h> typedef struct { int hilo; int *ar; long n; } vector_nuevo; void *inicializa(void *arg) { long i; for (i = 0; i < ((vector_nuevo *)arg)->n; i++) ((vector_nuevo *)arg)->ar[i] = 0; printf("Hilo %d ejecutando\n", ((vector_nuevo *)arg)->hilo); } int main(void) { int ar[1000000]; pthread_t th1, th2; vector_nuevo v_nuevo_1, v_nuevo_2; v_nuevo_1.hilo = 1; v_nuevo_1.ar = &ar[0]; v_nuevo_1.n = 500000; (void) pthread_create(&th1, NULL, inicializa, &v_nuevo_1); v_nuevo_2.hilo = 2; v_nuevo_2.ar = &ar[500000]; v_nuevo_2.n = 500000; (void) pthread_create(&th2, NULL, inicializa, &v_nuevo_2); (void) pthread_join(th1, NULL); (void) pthread_join(th2, NULL); return 0; } |
Compilar
1 |
gcc -pthread -o join join.c |