package br.aiec.multithread;
import java.util.concurrent.Executors;
import java.util.concurrent.ExecutorService;
/**
* Essa classe apenas cria um pool (conjunto) de threads por
* meio da classe "Executors" e então cria três objetos do tipo
* "ImprimeTarefa" que serão executados
* concorrentemente/paralelamente pelas threads (uma para cada tarefa)
* presentes no pool.
*
*
*
*/
public class Principal {
public static void main(String[] args) {
Runnable tarefa1 = new ImprimeTarefa("thread1");
Runnable tarefa2 = new ImprimeTarefa("thread2");
Runnable tarefa3 = new ImprimeTarefa("thread3");
ExecutorService pool = Executors.newCachedThreadPool();
System.out.println("Iniciando as threads secundárias");
pool.execute(tarefa1);
pool.execute(tarefa2);
pool.execute(tarefa3);
pool.shutdown();
System.out.println("Threads secundárias iniciadas.");
System.out.println("Thread principal terminando!");
}
}