The following code is supposed to take two integers (one thread for each input) from the user, add them (using a 3rd thread) and print the sum. But the program terminates after the first thread.
import java.util.Scanner;
public class T1 {
public static void main(String args[]) {
num1 oo = new num1();
num2 t1 = new num2();
add s = new add();
int flag = 0;
if(oo.flag == 0 && flag == 0) {
oo.start();
flag = 1;
}
if(oo.flag == 1 && flag == 1)
t1.start();
if(oo.flag == 1 && t1.flag2 == 1)
s.start();
}
}
class num1 extends Thread //implements Runnable
{
int n1,flag = 0;
Scanner obj = new Scanner(System.in);
public void run() {
System.out.println("enter first no");
n1 = obj.nextInt();
flag = 1;
System.out.print("In num1 and flag is " + flag + "\n");
}
}
class num2 extends Thread {
int n2,flag2 = 0;
Scanner obj = new Scanner(System.in);
public void run() {
System.out.println("enter second no");
n2 = obj.nextInt();
flag2 = 1;
System.out.print("In num2 and flag is " + flag2 + "\n");
}
}
class add extends Thread {
public void run() {
num1 o = new num1();
num2 t = new num2();
System.out.print("The sum is " + (o.n1 + t.n2) + "\n");
}
}
OUTPUT it gives:
enter first no
5
In num1 and flag is 1