使用多线程搜索元素数组,而元素未比较两次

时间:2015-12-05 17:30:47

标签: java multithreading

我需要找到使用控制台输入的数字是否完美,使用Java多线程,我真正需要的是创建指定数量的线程, 当用户在控制台上输入数字时,此方法检查它是否是完美的数字: 的

  int temp 0;

        for (int i = 1; i <= n / 2; i++) {
                int temp = 0;
                if (n % i == 0) {
                    temp += i;

                }

的 我希望每个创建的线程从for循环的索引中取一个随机数(i) 检查它是否是数字n的一个因素,虽然我不希望任何因子被两个不同的线程同时检查,或者被检查两次, 感谢

1 个答案:

答案 0 :(得分:1)

如果不使用某些内置机制,创建多线程应用程序来解决问题并不容易。

但是如果您决定自己这样做,我会建议您创建实现n接口的Runnable个线程。每个都应该知道它的id并且使用这个id来自数组的正确元素应该由线程进行检查 - i-th线程可以使用元素1*i,{{ 1}},...,2*i