private Programa[] tryAgain(Programa[] p1, int nThreads) throws IOException, InterruptedException {
	
		Thread t1[]=new Thread[nThreads];
		Programa retry[] = new Programa[nThreads];
		inicializaPrograma(retry,t1,nThreads);
		int indice=0;
		for(int i=0;i<nThreads;i++){
			System.out.println("tentar denovo");
			if(p1[i].urlBroken.size()>0){
				for(int a=0;a<p1[i].urlBroken.size();a++){ 
					retry[indice].setUrl(p1[i].urlBroken.get(a).toString());
					t1[indice] = new Thread(retry[indice]);
					t1[indice].start();
					indice=waitOneThreadStop(t1,nThreads);    
					}
			}
			
			if(p1[i].urlBadGateway.size()>0){
				for(int a=0;a<p1[i].urlBadGateway.size();a++){ 
					retry[indice].setUrl(p1[i].urlBadGateway.get(a).toString());
					t1[indice] = new Thread(retry[indice]);
					t1[indice].start();
					indice=waitOneThreadStop(t1,nThreads);    
					}
			}
			
			if(p1[i].urlDesconhecidas.size()>0){
				for(int a=0;a<p1[i].urlDesconhecidas.size();a++){ 
					retry[indice].setUrl(p1[i].urlDesconhecidas.get(a).toString());
					t1[indice] = new Thread(retry[indice]);
					t1[indice].start();
					indice=waitOneThreadStop(t1,nThreads);    
					}
			}
			
			if(p1[i].urlErrorServer.size()>0){
				for(int a=0;a<p1[i].urlErrorServer.size();a++){ 
					retry[indice].setUrl(p1[i].urlErrorServer.get(a).toString());
					t1[indice] = new Thread(retry[indice]);
					t1[indice].start();
					indice=waitOneThreadStop(t1,nThreads);    
					}
			}
			
		}
		waitAllThreadStoped(t1,nThreads);
		System.out.println("tentei dnovo");
		return retry;
	}