Threads para certificação

0 respostas
Le_Java_Reis

Boa noite galera,
primeiramente estou tomando coragem agora em tentar compartilhar minhas duvidas somente agora gostaria que me perdoassem se nesses primeiros posts eu vier a cometer alguns erros sendo que gora estou determinado a estar efetivo aki no GUJ, estou com duvidas ainda sobre Threads, gostaria que alguem me ajudasse sobre este pseudocodigo tirei esta ideia do livro da Kathy Sierra estou ralando já alguns meses queria fazer com que o Operador.class pudesse interagir com novos formatos de corte enquanto a Maquina.class efetuasse os cortes logo depois da primeira notify(), estou indo em busca da certificação minha prova ja esta marcada agora dia 22/10 e eu ainda com serias duvidas com relação ao topico de Threads, tenho feito algumas leituras paralelas ao livro como post aki do forum e livro do Camilo Lopes. Se alguem puder me ajudar com esta questão e tiver alguma dica, e principalmente um dica como baixar o testKiller e alguma referencia de livraria no Rio de Janeiro/Niteroi que eu possa comprar o livo de pratica java, do autor Roberto Rubinstein pois os correios em greve não queria arriscar comprar pela internet.
Desde obrigado a mesmo aqueles que indiretamente, e sem saber me ajudaram e apoiaram a tomar uma posição e realizar essa prova atraves das mensagem aqui postadas.

public class Operador implements Runnable{

	private boolean continua = true;
	
	@Override
	public void run() {
		System.out.println(Thread.currentThread().getName());
		while(this.continua){
			synchronized (this) {
				
				System.out.println("...Calculando etapas para a MAQUINA DE CORTE");
				try{
					for (int i = 0; i < 5; i++) {
						System.out.println("...CALCULANDO");
						Thread.sleep(1000);
					}
					notify();
				}catch (InterruptedException e) {	
					e.printStackTrace();
				}
			}
		}
	}

class Maquina implements Runnable{
	
	private boolean continua = true;
	Operador op = new Operador();
	
	@Override
	public void run() {
		while(continua){
			synchronized (op) {
				try{
					op.wait(2000);
					System.out.println(Thread.currentThread().getName());
					System.out.println("Efetivando etapas de corte nas laminas da maquina");
					for (int i = 0; i < 5; i++) {
						System.out.println("CORTANDO");
						Thread.sleep(1000);
					}
				}catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}
	}
}
	
	public static void main(String[] args) throws InterruptedException {
		
		Operador op = new Operador();
		Maquina m = new Maquina();
		Thread t = new Thread(op,"USUARIO");
		Thread t1 = new Thread(m,"MAQUINA DE CORTE");
		
		t.start();
		t.join();
		
		t1.start();
		synchronized (t1) {
			t1.wait();
		}
		t1.join();
	
	}
}
Criado 11 de outubro de 2011
Respostas 0
Participantes 1