Atividade Pratica Gerencia De Threads
Nome: Rafael Cardoso Oliveira RA: 4211798589
Escreva um relatório sobre os 4 códigos apresentados, respondendo às seguintes questões:
1.Qual a diferença do código de GroupTest para ThreadSleep, com relação ao resultado?
GroupTest – Ele cria um laço e roda 10 vezes imprimindo um texto String, espera 10 segundos depois e imprime(interrompe) valor aleatório de String de acordo com o laço.
ThreadSleep- Ele cria 10 treads aleatoriamente e tempos de sleep aleatórios para acordar durante 10 segundos um por um.
2.Qual a vantagem de se utilizar ThreadGroup?
É possível iniciar um grupo de threads com uma ordem aleatória ao mesmo tempo e interrompe-los após um tempo determinado todas as threads do grupo ao mesmo tempo.
3.Explique como funciona Java Executors e qual a sua utilidade no código ScheduleThread
O Java Executors gerencia pools de threads para executar atividades e defini um atraso para o inicio da atividade e/ou um período de repetição entre execuções.
4.Explique como a variável valor não é alterada pelas várias threads no código ThreadLocal.
Porque ele cria uma variável local e define o valor da variável local de uma thread, depois obtem o valor de valor correspondente a essa thread.
5.Modifique o código para que ela seja alterada por todas as threads. package threadlocaltest;
public class ThreadLocalTest extends Thread {
int valorLocal = 10; static int contador= 0; public void run() {
System.out.println(getName() + ": valorLocal= "+ contador); try{ sleep(5000);
} catch(InterruptedException e) {
e.printStackTrace();
} for(int i=0; i<10; i++) {
System.out.println(getName() + ": valorLocal= "+ valorLocal);
}
} public static void main (String args[]) { for(int i=0; i<10; i++) new ThreadLocalTest().start();
} }