java потоков и многопоточность: как синхронизировать потоки - PullRequest
1 голос
/ 08 апреля 2020

Я выполнял задание по колледжу для java, которое включает программу для поиска суммы и произведения n чисел с использованием двух потоков. Я написал следующий код, однако потоки перекрывают друг друга ie -код обоих потоков выполняются одновременно. Кто-то, пожалуйста, помогите мне переписать код так, чтобы после того, как только один поток завершил выполнение, мог начаться другой. Заранее спасибо

    import java.util.Scanner;

    class ThreadSum extends Thread {
        public void run() {
            int n, sum = 0, num;
            Scanner sc = new Scanner(System.in);
            System.out.println("Enter no of values");
            n = sc.nextInt();
            System.out.println("Enter numbers");
            for (int i = 0; i < n; i++) {
                num = sc.nextInt();
                sum = sum + num;
            }
            System.out.println("The sum is:" + sum);
        }
    }

    class ThreadPro extends Thread {

        public void run() {
            int n, pro = 1, num;
            Scanner sc = new Scanner(System.in);
            System.out.println("Enter no of values");
            n = sc.nextInt();
            System.out.println("Enter numbers");
            for (int i = 0; i < n; i++) {
                num = sc.nextInt();
                pro = pro * num;
            }
            System.out.println("The product is:" + pro);
        }
    }

    class pro {
        public static void main(String args[]) {
            ThreadSum ts = new ThreadSum();
            ts.start();
            ThreadPro tp = new ThreadPro();
            tp.start();
        }
    }
...