Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <pthread.h>
- #include <stdlib.h>
- #include <stdio.h>
- #define TOTAL_TH 10
- long exit_codes[TOTAL_TH];
- long input_data[TOTAL_TH];
- void F_thread(void *quiensoy)
- {
- long quien_soy;
- quien_soy=*((long *)quiensoy);
- fprintf(stdout,"Soy el thread con ID local %ld\n",quien_soy);
- /* Los threads pares devolveran 0 y los impares 1 */
- exit_codes[quien_soy]=quien_soy%2;
- pthread_exit(&exit_codes[quien_soy]);
- }
- void main(int argc,char *argv[])
- {
- pthread_t th_list[TOTAL_TH];
- int i,*return_value,ret;
- /* Creamos 10 threads */
- for (i=0;i<TOTAL_TH;i++)
- {
- input_data[i]=i;
- if ((ret=pthread_create(&th_list[i],NULL,(void *)F_thread,(void *)&input_data[i]))!=0)
- {
- fprintf(stdout,"create: error %d in th %d\n",ret,i);
- }
- }
- /*Esperamos a que acaben */
- for (i=0;i<TOTAL_TH;i++)
- {
- if (pthread_join(th_list[i],(void **)&return_value)!=0)
- {
- fprintf(stdout,"Error en join th %d\n",i);
- }else{
- fprintf(stdout,"thread %d acaba con estado %d\n",i,*return_value);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement