Код: Выделить всё
public class NT8 extends Thread{
NT8(String ime, int prioritet){
super(ime);
setPriority(prioritet);
start();
}
@Override
public void run() {
while(signal){
brojac++;
}
System.out.println(currentThread().getName()+" je zavrsena!");
}
void promeni(){
signal = false;
}
static void main(String[] args) throws InterruptedException{
NT8 n1 = new NT8("Prva nit",5);
NT8 n2 = new NT8("Druga nit",5);
long ukupanBroj;
System.out.println("Glavna nit spava");
Thread.sleep(10000);
System.out.println("Glavna nit se budi");
System.out.println(n1.signal);
n1.promeni();
System.out.println(n1.signal);
System.out.println(n2.signal);
n2.promeni();
System.out.println(n2.signal);
n1.join();
n2.join();
ukupanBroj = n1.brojac+n2.brojac;
System.out.println(n1.getName()+ " zauzima ukupno "+(double)(n1.brojac*100.00)/ukupanBroj+"%");
System.out.println(n2.getName()+ " zauzima ukupno "+(double)(n2.brojac*100.00)/ukupanBroj+"%");
}
private volatile boolean signal = true;
long brojac = 0;
}
Код: Выделить всё
private boolean signal = true
Код: Выделить всё
private volatile boolean signal = true;
Подробнее здесь: https://stackoverflow.com/questions/798 ... t-volatile