一次运行Array中所有值的方法

时间:2014-04-21 18:54:32

标签: java methods arraylist

我目前正在尝试同时运行同一方法的多个方法。现在它只是一次做一个,然后一旦它循环通过所有它们就睡觉。我需要它通过该方法同时执行数组中的所有值。这是我目前的代码:

public static void checkTimer(TS3Api api) {
    for (String keys : admins) {
        //What I need: Check Groups for all values in string AT THE SAME TIME
            checkGroup(api, keys);
    }
            try {
                //Sleep for 10 second
                Thread.sleep(10000);
            } catch (InterruptedException e) {
                // Do nothing
            }
    }

2 个答案:

答案 0 :(得分:0)

Thread.sleep(10000)导致当前线程休眠10秒。这将是主要线程。你没有从主要线程中分离出任何线程,所以这就像你写的一样。

查看Java文档http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html

有一些拆分线程的例子。这可以帮助您找到解决方案。

答案 1 :(得分:0)

在Java 8中,您可以编写如下内容:

admins.parallelStream().forEach(keys -> checkGroup(api, keys));

然而,它将并行执行的项目数取决于系统。在任何情况下,除非你的系统至少有admins中的项目处理器,否则你不可能并行完成所有这些处理器,无论你采用什么方法。