我一直在尝试使多线程耗尽,但是我得到了错误消息,任何人都可以帮助我,我一直在更改漏洞,但是我还没有找到解决问题的方法:“没有可访问的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.");

}
}
}

最佳答案

由于hiloinner classprograma4,因此必须先创建programma4的标识,然后才能为其创建内部。

将其设置为static class hilo违反了该要求。

static class hilo extends Thread {


另一种方法是创建一个programa4附加到它。

new programa4().new hilo(z).start();

09-15 14:17