MultiThread3
429 palavras
2 páginas
Aula 06MultiThread3.java
1. Quantas e quais são as classes definidas no programa ?
R: São 2 classes, MultiThread3 e MyRunnable
2. Explique em que parte do programa são executadas:
1. Alocação dos threads;
R: A alocação dos threads ocorre nas linhas 46 – 50: for (int ind = 0; ind < 10; ind++) { mr = new MyRunnable (ind); t = new Thread (mr); tl.add (t);
}
2. Disparo dos threads.
R: O disparo dos threads ocorre nas linhas 53 – 55: for (int ind = 0; ind < 10; ind++) { tl.get (ind).start ();
}
3. Aguardo por término dos threads.
R: A espera pelo término ocorre nas linhas 59 – 61: for (int ind = 0; ind < 10; ind++) { tl.get (ind).join ();
}
3. Qual método é executado com o disparo do thread ?
R: É o método run() localizado na linha 20.
4. Interpretação da saída:
1. O que significa a ordem dos Hellos ?
R: Significa a ordem de disparo dos threads, a ordem em programação concorrente é imprevisivel.
MultiThread4.java
1. Quantas e quais são as classes que o programa implementa ?
R: O programa implementa Runnable na classe MyRunnable, conforme linha 46: private static class MyRunnable implements Runnable
2. Explique em que parte do programa são executadas:
1. alocação;
R: A alocação dos threads é feita nas linhas 82 – 86: for (int ind = 0; ind < 10; ind++) { mr = new MyRunnable (ind); t = new Thread (mr); tl.add (t);
}
2. disparo;
R: O disparo é feito nas linhas 89 – 91: for (int ind = 0; ind < 10; ind++) { tl.get (ind).start ();
}
3. aguardo por término;
R: A espera ocorre nas linhas 95 – 99: for (int ind = 0; ind < 10; ind++) { printTimeStamp ("Thread " + ind + " is " + tl.get (ind).getState() + "\n"); tl.get (ind).join (); printTimeStamp ("Thread " + ind + " was joined." + "\n");
}
3. Qual método é executado com o disparo dos threads ?
R: É o método run() localizado na linha 20.
4. Explicar as funções getTimeString() e printTimeStamp().
R: A função getTimeString() retorna uma string com data, hora e milessegundos formatada. A função