如何在Java中创建动态线程

时间:2015-11-11 01:24:37

标签: java multithreading concurrency

我正在尝试学习如何在控制台中由用户创建指定数量的线程。没有太多可以帮助我,并希望详细描述如何创建动态数量的线程。我知道如何使用扫描仪将用户输入到程序中,但需要帮助创建线程

我试图使用这种方法,因为它对我来说是最有意义的(我是一个非常业余的程序员学习CS):How to create threads dynamically?

我的代码

包线程;

 public class morethreads {
   public Runnable MyRunnable;
       public void run() {
        for (int i = 0; i<20; i++)
        System.out.println("Hello from a thread!" + i);
       }
    public void main(String args[]) {
    Thread[] hello = new Thread [10];//amount of threads
    for(int b =0; b < hello.length; b++){
        hello[b] = new Thread(MyRunnable);//<<this is the issue 
        hello[b].start();
     }
  }
}

2 个答案:

答案 0 :(得分:1)

看起来您正在尝试在多个线程中运行run方法。它是morethreads类的一部分,因此该类需要实现Runnable。

然后,您需要创建一个实例而不是Thread。

> public  class morethreads implements Runnable {
>     public void run() {
>         for (int i = 0; i<20; i++)
>             System.out.println("Hello from a thread!" + i);
>     }
>     public static void main(String args[]) {
>         Thread[] hello = new Thread [10];//amount of threads
>         for(int b =0; b < hello.length; b++){
>             hello[b] = new Thread(new morethreads());
>             hello[b].start();
>         }
>     } }

希望这有帮助

答案 1 :(得分:0)

请尝试以下代码:

您需要实现run方法。

public class morethreads {
    public static Runnable MyRunnable = new Runnable() {
        public void run() {
            for (int i = 0; i<20; i++) {
                System.out.println("Hello from a thread!" + i);
            }
        }
    };

    public static void main(String args[]) {
        Thread[] hello = new Thread [10];//amount of threads
        for(int b =0; b < hello.length; b++) {
            hello[b] = new Thread(MyRunnable);//<<this is the issue 
            hello[b].start();
        }
    }
}

希望这有帮助!