Sprno:9223
9 TO IMPLEMENT THREADING
PROGRAM:
#include <stdio.h>
#include <pthread.h>
#define MAX 10
void* even_sum(void* arg) {
int sum = 0;
for (int i = 0; i <= MAX; i++) {
if (i % 2 == 0) {
sum += i;
printf("Even Thread: adding %d, current sum = %d\n", i, sum);
}
}
printf("Even Thread: Total even sum = %d\n", sum);
return NULL;
}
void* odd_sum(void* arg) {
int sum = 0;
for (int i = 0; i <= MAX; i++) {
if (i % 2 != 0) {
sum += i;
printf("Odd Thread: adding %d, current sum = %d\n", i, sum);
}
}
printf("Odd Thread: Total odd sum = %d\n", sum);
return NULL;
}
Sprno:9223
int main() {
pthread_t thread1, thread2;
pthread_create(&thread1, NULL, even_sum, NULL);
pthread_create(&thread2, NULL, odd_sum, NULL);
pthread_join(thread1, NULL);
pthread_join(thread2, NULL);
printf("Main: Both threads have finished.\n");
return 0;
}
OUTPUT:
Even Thread: adding 0, current sum = 0
Even Thread: adding 2, current sum = 2
Odd Thread: adding 1, current sum = 1
Even Thread: adding 4, current sum = 6
Odd Thread: adding 3, current sum = 4
Even Thread: adding 6, current sum = 12
Odd Thread: adding 5, current sum = 9
Even Thread: adding 8, current sum = 20
Odd Thread: adding 7, current sum = 16
Even Thread: adding 10, current sum = 30
Odd Thread: adding 9, current sum = 25
Even Thread: Total even sum = 30
Odd Thread: Total odd sum = 25
Main: Both threads have finished.