Witam, powiedzmy że mamy poniższą definicję klasy reprezentującą wątki:
private int thread_id;
public MyThread(int id)
{
this.thread_id = id;
}
public int getThread_ID()
{
return thread_id;
}
public void setThread_ID(int n)
{
this.thread_id = n;
}
@Override
public void run()
{
System.out.println("ID" + thread_id)
}
Tworząc sobie w klasie main wątki : w1(1) , w2(2) , w3(3) , w4(4) , w5(5) wywołując metodę start() wątki oczywiście wykonują się "jak chcą" ponieważ nie są zsynchronizowane. Mogę użyć samego synchronized , ale chciałbym zgłębić zagadnienia notify i wait. Czy moglibyście pokazać mi na przykładzie - powiedzmy - by najpierw wykonały się wątki, których reszta z dzielenia ich id przez 2 jest równa zero? Czyli w teorii pierwsze powinny się wykonać wątki w2 i w4 a dopiero później w1, w3 i w5. Sam problem oczywiście mogę rozwiazać na przykład za pomocą sleepa i dodatkowych instrukcji warunkowych, ale chodzi mi o podejście do tego tematu z użyciem wcześniej wspomnianych notify i wait. Z góry dzięki!