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
 
     
    