Já pesquisei em diversos fóruns e n achei nd pra resolver meu problema. Eu preciso criar um algoritmo de processamento, em que eu tenho o tempo de chegada e de duração de cada processo. Eu tenho uma fila em que vou add os processos a medida q estiverem “prontos” (ele é considerado pronto qnd o algoritmo atinge seu tempo de chegada). Assim q eu tenho um processo na minha fila, eu começo a processá-lo mas eu tenho q verificar se algum outro processo chegou durante esse tempo de processamento do q está sendo executado. O problema é esse temporizador q usei, nao está dando certo… alguém conhece outra maneira de fazer isso? Segue o código:
start = System.currentTimeMillis();//inicia contador
int cont = 0;
for (int i = 0; i < processos.size(); i++) {
processoAtual = processos.get(i);
if (i == 0) {
filaDeProntos.insere(processos.get(i));
System.out.println("inseriu i: " + filaDeProntos.getProcessos().get(i).getTempoChegada());
}
if (!filaDeProntos.getProcessos().isEmpty()) {//se a fila de prontos já tem um processo
do {
/*se o temporizador é igual ao tempo de chegada do processo na posição i e diferente do 1 processo*/
System.out.println("start: " + start + "duracao processo: " + processoAtual.getDuracao());
for (int j = cont; j < processos.size(); j++) {
if (processos.get(j).getTempoChegada() == start) {
if (!filaDeProntos.getProcessos().contains(processos.get(j))) {//se a fila de prontos não contém o processo atual
filaDeProntos.insere(processos.get(j));//insere na fila de prontos
System.out.println("inseriu j: " + filaDeProntos.getProcessos().get(j));
cont = j;//cont armazena o ultimo processo q foi verificado pra evitar verificação desnecessária
}
}
}
} while (processoAtual.getDuracao() < start);//
}
}
}
}