Part A Multithreading inheritance and Interface Polymorphism
Solution
{
int Maximum;
int Minimum;
};
int array[arraySize];
void *thread_search_min_max(void *);
int main()
{
pthread_t tid;
struct MaxMin *st_main,*st_th;
int totalMaximum,totalMinimum;
st_main=(struct MaxMin*)malloc(sizeof(struct MaxMin));
int Count;
for(Count=0;Count<arraySize;Count++)
{
printf(\"Please enter the value of array[%d] :\",Count);
scanf(\"%d\",&array[Count]);
}
pthread_create(&tid,NULL,thread_search_min_max,NULL);
st_main->Maximum=array[0];
st_main->Minimum=array[0];
for(Count=1;Count<arrSize/2;Count++)
{
if(array[iCount] > st_main->Maximum)
{
st_main->Maximum=array[Count];
}
if(array[Count] < st_main->Minimum)
{
st_main->Minimum=array[Count];
}
}
pthread_join(tid,(void**)&st_th);
if(st_main->Maximum >= st_th->Maximum)
{
toalMaximum=st_main->Maximum;
}
else
{
totalMaximum=st_th->Maximum;
}
if(st_main->Minimum <=st_th->Minimum)
{
toalMinimum=st_main->Minimum;
}
else
{
totalMinimum=st_th->Minimum;
}
printf(\"Final Max : %d \ \",totalMaximum);
printf(\"Final Min : %d \ \",totalMinimum);
return 0;
}
void *thread_search_min_max(void *para)
{
struct MaxMin *mp;
mp=(struct MaxMin*)malloc(sizeof(struct MaxMin));
int Count;
mp->Maximum=array[arraySize/2];
mp->Minimum=array[arraySize/2];
for(Count=arrSize/2 + 1;Count<arrSize;Count++)
{
if(array[iCount] > mp->Maximum)
{
mp->Maximum=array[Count];
}
if(array[Count] < mp->Minimum)
{
mp->Minimum=array[Count];
}
}
pthread_exit((void*)mp);
}


