我正在尝试学习如何在控制台中由用户创建指定数量的线程。没有太多可以帮助我,并希望详细描述如何创建动态数量的线程。我知道如何使用扫描仪将用户输入到程序中,但需要帮助创建线程
我试图使用这种方法,因为它对我来说是最有意义的(我是一个非常业余的程序员学习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();
}
}
}
答案 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();
}
}
}
希望这有帮助!