]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - tests/pthreads.c
6d04b97b610830f5fd0a71f0988e2d33f99b9df8
[z.facultad/75.42/plaqui.git] / tests / pthreads.c
1
2 #include <stdio.h>
3 #include <pthread.h>
4 #include <stdlib.h>
5 #include <unistd.h>
6 #include <time.h>
7
8 void *ejecuta_animal(void *p)
9 {
10         int i;
11         int cuento = rand()%15;
12         int retardo = rand()%5+1;
13         char *yo = (char *)p;
14
15         printf("%s::voy contar hasta %d (con retardo=%d)\n", yo, cuento, retardo);
16
17         for(i=0; i<=cuento; i++) {
18                 printf("%s:: voy por %d de %d\n", yo, i, cuento);
19                 sleep(retardo);
20         }
21
22         return NULL;
23 }
24
25
26 int main(int argc, char *argv[])
27 {
28         pthread_t s1, s2, s3;
29
30         srand(time(NULL));
31         pthread_create(&s1, NULL, ejecuta_animal, "GNU");
32         pthread_detach(s1);
33         pthread_create(&s2, NULL, ejecuta_animal, "Vaca");
34         pthread_detach(s2);
35         pthread_create(&s3, NULL, ejecuta_animal, "Conejo");
36         pthread_detach(s3);
37
38         pthread_exit(NULL);
39         return 0;
40 }
41