]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - tests/pthreads.c
definitivamente tengo que aprender a documentar en alguna de esas cosas raras que...
[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         printf("Se lanzó thread %lu.\n", (unsigned long)s1);
34         pthread_create(&s2, NULL, ejecuta_animal, "Vaca");
35         pthread_detach(s2);
36         printf("Se lanzó thread %lu.\n", (unsigned long)s2);
37         pthread_create(&s3, NULL, ejecuta_animal, "Conejo");
38         pthread_detach(s3);
39         printf("Se lanzó thread %lu.\n", (unsigned long)s3);
40
41         pthread_exit(NULL);
42         return 0;
43 }
44