środa, 24 stycznia 2018

Using pthread in gcc

touch pthread_example.c

#include <stdio.h>
#include <pthread.h>
#include <math.h>

int is_First(int value)
{
    int i,sum;
    sum=0;
    for(i=1;i<value+1;i++)
     if(value%i==0)
      ++sum;
    if(sum==2)
     return 1;
    else
     return 0;
}

void *print_First(void *pF)
{
    int i=2;
    while(1)
    {
     for(;;)
     {
         if(is_First(i))
         {
             printf("%d\n",i);
         }
         ++i;
     }
    }
  return NULL;
}
void *print_Sqrt(void *pS)
{
    int i;
    i=1;
   
        for(;;)
        {
            if(is_First(i))
            {
               
                printf("%f\n",sqrt(i*1.0));
            }
            ++i;
        }
    return NULL;
   
}


int main(int argc, char **argv)
{
    pthread_t first_Id;
    pthread_t first_Sqrt;
    pthread_create(&first_Id,NULL,&print_First,NULL);
    pthread_create(&first_Sqrt,NULL,&print_Sqrt,NULL);
    pthread_join(first_Id,NULL);
    pthread_join(first_Sqrt,NULL);
    return 0;
}


gcc -o pthread_example pthread_example.c -lpthread -lm

Brak komentarzy:

Prześlij komentarz