我一直在尝试使多线程耗尽,但是我得到了错误消息,任何人都可以帮助我,我一直在更改漏洞,但是我还没有找到解决问题的方法:“没有可访问的programa4类型的封闭实例。必须符合条件。使用类型为programa4的封闭实例进行分配(例如xxnew A(),其中x是programa4的实例)。”
谢谢大家
public class programa4 {
public static void main(String[] args) {
int t=Integer.parseInt(args[0]);
int x=1;
String z=args[1];
while(x<=t){
System.out.println("Iniciando hilo "+x);
new hilo(z).start();
x=x+1;
}
}
class hilo extends Thread{
int num;
String z;
hilo(String z){
this.num=Integer.parseInt(z);
}
public void run() {
int t=1;
while(t<=num){
System.out.println("Generando iteracion: "+ t);
double x=Math.random()*10;
System.out.println("Esperando "+ x +" segundos");
try {
Thread.sleep((long)x*1000);
System.out.println("Iteracion terminada");
} catch (InterruptedException e) {
System.out.println("Se interrumpio.");
}
t=t+1;
}
System.out.println("Terminado hilo.");
}
}
}
最佳答案
由于hilo
是inner class
的programa4
,因此必须先创建programma4
的标识,然后才能为其创建内部。
将其设置为static class hilo
违反了该要求。
static class hilo extends Thread {
另一种方法是创建一个
programa4
附加到它。new programa4().new hilo(z).start();