Professional Documents
Culture Documents
Question-1
Write a multithreaded-thread program in c to create 1k, 5k, 10k, 20k, and 50k threads and measure
the time taken for each thread group.
CODE
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include<time.h>
int main()
{
pthread_t thread_id;
int i;
printf("Before Thread\n");
clock_t t;
t = clock();
for(i=0;i<1000;i++)
pthread_create(&thread_id, NULL, myThreadFun, (void *)&i);
t=clock()-t;
double time_taken = ((double)t)/CLOCKS_PER_SEC;
printf("1k thread took %f seconds to execute \n", time_taken);
t = clock();
for(i=0;i<5000;i++)
pthread_create(&thread_id, NULL, myThreadFun, (void *)&i);
t=clock()-t;
time_taken = ((double)t)/CLOCKS_PER_SEC;
printf("5k thread took %f seconds to execute \n", time_taken);
t = clock();
for(i=0;i<10000;i++)
pthread_create(&thread_id, NULL, myThreadFun, (void *)&i);
t=clock()-t;
time_taken = ((double)t)/CLOCKS_PER_SEC;
printf("10k thread took %f seconds to execute \n", time_taken);
t = clock();
for(i=0;i<20000;i++)
pthread_create(&thread_id, NULL, myThreadFun, (void *)&i);
t=clock()-t;
time_taken = ((double)t)/CLOCKS_PER_SEC;
printf("20k thread took %f seconds to execute \n", time_taken);
t = clock();
for(i=0;i<50000;i++)
pthread_create(&thread_id, NULL, myThreadFun, (void *)&i);
t=clock()-t;
time_taken = ((double)t)/CLOCKS_PER_SEC;
printf("50k thread took %f seconds to execute \n", time_taken);
pthread_exit(NULL);
return 0;
}
Output
Question-2
Write a program to create two threads. Thread1 has to print the print String1 “Parallel”.
Thread2 has to print the String2 “Distributed Computing” .
CODE
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *myThreadFun(void *vargp)
{
int *myid=(int *)vargp;
printf("Thread 1:Parallel\n");
}
void *myThreadFun2(void *vargp)
{
int *myid=(int *)vargp;
printf("Thread 2:Distributed Computing\n");
int main()
{
pthread_t thread_id;
int i=1;
Output