I tried to write a program that prints sum of numbers from 1 to 100,000,000 using multithreading in Java. The idea is that the 1st thread will calculate the sum of the numbers from 1 to 25,000,000; the 2nd thread will calculate the sum of the numbers from 25,000,001 to 50,000,000, and so forth. The main thread will have to print out the sum after gathering the results. I tried extending the Thread class.
class Thread1 extends Thread{
public void run() {
//int i=num;
int i;
for(i=1;i<25000001;i++)
i+=i;
System.out.println("Thread 1: the sum is: "+i);
mainThread m=new mainThread();
m.guther(i);
}
}
class Thread2 extends Thread{
public void run() {
//int i=num;
int i;
for(i=25000001;i<50000001;i++)
i+=i;
System.out.println("Thread 2: the sum is: "+i);
mainThread m=new mainThread();
m.guther(i);
}
}
class Thread3 extends Thread{
public void run() {
//int i=num;
int i;
for(i=50000001;i<75000001;i++)
i+=i;
System.out.println("Thread 3: the sum is: "+i);
mainThread m=new mainThread();
m.guther(i);
}
}
class Thread4 extends Thread{
public void run() {
//int i=num;
int i;
for(i=75000001;i<100000001;i++)
i+=i;
System.out.println("Thread 4: the sum is: "+i);
mainThread m=new mainThread();
m.guther(i);
}
}
class mainThread{
void guther(int total) {
for(int i=1;i<=1;i++)
total+=total;
System.out.println("mainThread : the sum is: "+total);
}
/*public void run() {
mainThread m=new mainThread();
System.out.println(Thread.currentThread().getId()+"the total is: ");
}*/
}
public class startThread {
public static void main(String[] args) {
//thread 1
Thread1 t1=new Thread1();
t1.start();
//t1.run(1);
//thread 2
Thread2 t2=new Thread2();
t2.start();
//t2.run(25000001);
//thread 3
Thread3 t3=new Thread3();
t3.start();
//t3.run(50000001);
//thread 4
Thread4 t4=new Thread4();
t4.start();
//t4.run(75000001);
//int total=t1.run(1)+t2.run(25000001)+t3.run(50000001)+t4.run(75000001);
//System.out.println("the total is: "+total);
//mainThread m=new mainThread();
}
}