繁体   English   中英

java 线程和多线程:如何同步线程

[英]java threads and multithreading:How to synchronize threads

我正在为 java 做我的大学作业,其中包括一个使用两个线程查找 n 数字的总和和乘积的程序。我编写了以下代码,但是线程相互重叠,即两个线程的代码正在同时执行。请有人帮我重写代码,以便只有一个线程完成执行后,另一个线程可以启动。提前致谢

    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();
        }
    }

看看我在https://stackoverflow.com/a/65677134/14346734中的回答。

记住:线程是异步的。 如果您需要它们同步,请不要使用线程。

请编辑并让我们知道您的观点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM