如何同时多次运行Java应用程序?

时间:2016-03-22 00:32:36

标签: java multithreading

Java class snippet:

public static void main(String[] args) throws FileNotFoundException SQLException, ParseException {
    TaskCheck tc = new TaskCheck();

    if (args.length != 1)
    {
      System.err.println("Missing parameter. Please pass the task Name.");
      System.exit(1);
    }

    else
    {
      // Logic goes here
    }
}

我用一个参数运行上面的Java类。例如:

java TaskCheck "testtask1"

我需要使用不同的参数同时运行这个Java类。那么,我应该使用多线程来实现这一目标吗?

对于Ex:

java TaskCheck "testtask1"

java TaskCheck "testtask2"

java TaskCheck "testtask3"

2 个答案:

答案 0 :(得分:0)

多线程是实现并行性的一种方法

public class Echo{

    public static void main(final String[] args){
        if (args.length == 0)
        {
            System.err.println("Missing parameter. Please pass the task Name.");
            System.exit(1);
        }

        for(final String taskName : args){
            Thread t = new Thread(){
                public void run(){
                    System.out.println(taskName);
                    TaskCheck tc = new TaskCheck();

                }
            };
            t.start();
        }

    }
}

答案 1 :(得分:0)

实际上它与多线程无关。您只想同时多次运行程序。它通常由您的操作系统实现。

例如,在Unix下,你可以做到

text = "I love the eighteen nineties"
mapping = {"eighteen nineties" => "1890's"}
pattern = /\b#{Regexp.union(mapping.keys)}\b/
text.gsub(pattern, mapping)
# => "I love the 1890's"

在Windows下,

#> java TaskCheck "testtask1" &
#> java TaskCheck "testtask2" &
#> java TaskCheck "testtask3" &

如果您需要纯Java解决方案,可以通过运行#> start java TaskCheck "testtask1" #> start java TaskCheck "testtask2" #> start java TaskCheck "testtask3" 命令来查看Runtime.exec()ProcessBuilder来创建子进程。