Bom pessoal gostaria de saber por que ocorre o seguinte erro
tenho a seguinte classe
public class ThreadStart {
public static void main(String[] args){
CreateExecutors ce = new CreateExecutors();
ExecutorService es = Executors.newFixedThreadPool(3);
while (true) {
try {
for (int i = 0; i < 2; i++) {
es.execute(ce.getExecutor());
}
} catch (Exception e) {
System.exit(1);
}
}
}
}
e a outra:
public class CreateExecutors {
private static Run exists = null;
public Run getExecutor(){
if(exists != null){
return exists;
}
exists = new Run();
return exists;
}
class Run implements Runnable{
DateFormat ft = SimpleDateFormat.getInstance();
public void run() {
((SimpleDateFormat)ft).applyPattern("HH:mm");
try {
ft.parse("00:01");
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
Ao rodar o código aparece vários erros, um deles é esse
java.lang.NumberFormatException: For input string: ""
Sei que concerteza é problema de sincronização e a solução seria abrir um dateFormat para cada thread mas eu quero entender qual é o erro que acontece, tentei debugar e entender. caso alguém ja saiba ficaria muito grato.
quero saber se é race condition,starvation,livelocks enfim. os mais sêniors vão saber explicar algo desse tipo.
Atenciosamente.
Bruno Taboada.
