在Java中执行多线程时如何在run方法中传递参数
我正在学习使用Runnable接口来使用多线程 这就是我试图做到的在Java中执行多线程时如何在run方法中传递参数,java,multithreading,Java,Multithreading,我正在学习使用Runnable接口来使用多线程 这就是我试图做到的 public class ExampleClass implements Runnable { public static void main(String[] args) { Thread object = new Thread(new ExampleClass()); object.start(); } public void run(String[]
public class ExampleClass implements Runnable {
public static void main(String[] args)
{
Thread object = new Thread(new ExampleClass());
object.start();
}
public void run(String[] args){
System.out.println("ExampleClass running");
}
}
但是,这不起作用,因为我的假设是start方法调用run(),但是因为在上面的示例中,我将该方法作为run(String)使用,所以它不起作用。程序编译后就退出了
你能告诉我哪里做错了吗?你可以在
ExampleClass
的构造函数中传递参数
public class ExampleClass implements Runnable {
private String[] args;
public ExampleClass(String[] args) {
this.args = args;
}
public static void main(String[] args) {
Thread object = new Thread(new ExampleClass(args));
object.start();
}
@Override
public void run() {
System.out.println("ExampleClass running, args: " + Arrays.toString(args));
}
}
您可以在
ExampleClass
的构造函数中传递参数
public class ExampleClass implements Runnable {
private String[] args;
public ExampleClass(String[] args) {
this.args = args;
}
public static void main(String[] args) {
Thread object = new Thread(new ExampleClass(args));
object.start();
}
@Override
public void run() {
System.out.println("ExampleClass running, args: " + Arrays.toString(args));
}
}
程序编译了吗?它并没有说它缺少一个no-arg
run()
方法?它为您编译真的很奇怪。我在编译时遇到了这个错误:com.company.ExampleClass不是抽象的,并且不会覆盖java.lang中的抽象方法run()。Runnable@Amongalen-您需要添加未实现的方法,您应该看到程序编译错误旁边的建议?它并没有说它缺少一个no-argrun()
方法?它为您编译真的很奇怪。我在编译时遇到了这个错误:com.company.ExampleClass不是抽象的,并且不会覆盖java.lang中的抽象方法run()。Runnable@Amongalen-您需要添加未实现的方法,您应该看到编译错误旁边的建议