19. august 2008 - 10:56Der er
8 kommentarer og 1 løsning
wait / notify virker ikke?
Jeg har forsøgt at benytted wait() og notify() i forbindelse med en gui, men uden held. Jeg har derefter forsøgt at lave et simpelt eksempel, men stadig uden held. Mine testklasser:
public class Thread1 extends Thread { @Override public void run() { while(true) { System.out.println("Thread1 before wait."); synchronized(this) { try { wait(); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println("Thread1 after wait."); } } }
public class Thread2 extends Thread { @Override public void run() { while(true) { System.out.println("Thread2 before notify."); System.out.println("Tick tack..."); synchronized(this) { notifyAll(); notify(); } System.out.println("Thread2 after notify."); } } }
public class ThreadTest { public static void main(String[] args) { Thread1 t1 = new Thread1(); Thread2 t2 = new Thread2(); t1.start(); t2.start(); } }
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Laes docs paa dem - hvis der er flere traade som venter paa samme objekt saa vil notify vaekke en af dem mens notifyAll vil vaekke alle. Men "All" er altsaa mange traade et objekt ikke flere objekter.
Well jeg skal bruge det til at standse udførslen af noget kode indtil brugeren har klikket på en knap (I et vindue med forskellige knapper der kan vælges imellem). Men tak for tippet omkring concurrent. Det vil jeg lige se på.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.