当我在 start() 方法中传递参数时,出现错误(在最后 5 行中)。错误提示:thread 类型中的方法 start() 不适用于参数 (int)。正确的做法是什么?
这个程序是关于使用 Java 中的多线程打印奇数/偶数。
import java.util.Scanner;
class odd extends Thread
{
public void run(int y){
System.out.println("Odd numbers are:");
for (int i=0;i<=y;i++)
{
if (i%2!=0)
{
System.out.println(i);
}
}
}
}
class even extends Thread{
public void run(int x)
{
System.out.println("Even Numbers are");
for (int i=0; i<=x; i++)
{
if (i%2==0)
{
System.out.println(i);
}
}
}
}
class Star{
public static void main(String[] args)
{
System.out.println("Enter No. upto which even-odd should be printed");
Scanner var=new Scanner(System.in);
int vary= var.nextInt();
odd money=new odd();
even honey=new even();
money.start(vary);
Thread.sleep(5000);
honey.start(vary);
}
}
最佳答案
执行此操作的标准方法是
- 在线程类中声明一个或多个成员变量来保存参数
- 在线程类中声明一个构造函数来接收和存储这些参数
- 实例化线程类时传递参数
举个例子:
class Jo extends Thread
{
int var;
public Jo(int var) {
this.var = var;
}
public void run(int y) {
// some code using this.var
...
}
}
...
Jo money = new Jo(vary);
money.start();
关于java - (Java多线程) 多线程中如何传递参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40838678/