Bem estou começando meu estudo sobre threads é estou com algumas dúvidas…
Qual a forma mais simples de trabalhar com threads…?
Bem a forma que estou estudando e implementando a interface Runnable
vou deixar o código que eu criei para ficar mais clara minha dúvida:
package com.multithreading;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class Threads implements Runnable
{
private String nome_thread;
private long temp;
public Threads(String nome_thread,int temp)
{
try
{
this.nome_thread=nome_thread;
this.temp=temp;
Thread.sleep(temp);
}
catch(InterruptedException e)
{
e.printStackTrace();
}
System.out.println("dormindo"+ this.nome_thread);
}
public void run()
{
// Método que vai rodar a thread
JTextArea text = new JTextArea(5,5);
JScrollPane scroll = new JScrollPane(text);
String th="Olá sou a thread "+this.nome_thread;
text.setText(th);
JOptionPane.showMessageDialog(null, text);
}
}
class Executa
{
public static void main(String args[])
{
Threads chama = new Threads("thread1",10000);
Threads chama1 = new Threads("thread2",500);
Threads chama2 = new Threads("thread3",250);
System.out.println("Iniciando as threads");
ExecutorService executaThread = Executors.newFixedThreadPool(3);
executaThread.execute(chama);
executaThread.execute(chama1);
executaThread.execute(chama2);
}
}
Bem reparem que a thread1 vai demorar bem mais que as outras…
como eu posso fazer que as outras threads sejam executadas enquanto
a thread1 dorme…?