Olá pessoal, é a segunda vez que posto aqui no fórum, se estou no lugar errado desculpem.
Alguém sabe dizer por que minha classe não funciona?
Era para o loop da thread verificar a variavel value e imprimir caso seja diferente de null, mas quando rodo imprime só um "PrinterTest 9" e sai.
public class PrinterThread {
private static String value;
private Thread t;
private boolean run;
public PrinterThread() {
run = true;
value = "";
t = new Thread(new Runnable() {
public void run() {
while(run)
printAndNull();
}//run
});
}//method()
public void start() {
run = true;
t.start();
}//method()
public void stop() {
run = false;
}//method()
public synchronized void print(String s) {
value = s;
}//method()
public synchronized void printAndNull() {
if(value != null) {
System.out.println(value);
value = null;
}//if
}//method()
public static void main(String[] args) {
PrinterThread p = new PrinterThread();
p.start();
for(int i = 0; i < 10; i++) {
p.print("PrinterTest "+ String.valueOf(i));
}//for
p.stop();
}//method()
}//class