Avatar billede joshin Nybegynder
17. november 2003 - 11:27 Der er 9 kommentarer og
1 løsning

Vække en tråd

Hej jeg har en tråd som bliver sat til at sove:
      try
      {
        Thread.sleep(60 * 1000 * 2);
      }
      catch (Exception e)
      {
        e.printStackTrace();
      }
i løbet af de to minutter kan en event blivet kaldt, som gerne skulle vække tråden, så den fortsætter, og kan returnere med en værdi, som sættes af eventen.

  public void discoveryEvent(DiscoveryEvent ev)
  {
    ....
    // Væk tråd
  }

Jeg har prøvet med notify og notifyAll men uden held

Forslag?
Avatar billede tama Nybegynder
17. november 2003 - 11:49 #1
Jeg tror at du skal sætte den i wait position istedet for i sleep.
Fra en wait position kan du nemlig kalde notify.
Avatar billede joshin Nybegynder
17. november 2003 - 11:57 #2
Når jeg laver this.wait for jeg (i runtime):

java.lang.IllegalMonitorStateException: current thread not owner
at java.lang.Object.wait(Native Method)
Avatar billede joshin Nybegynder
17. november 2003 - 12:28 #3
Det skal lige nævnes at klassen ikke er implementeret som er tråd
Avatar billede repsak Nybegynder
17. november 2003 - 15:58 #4
Thread.sleep = pause. Den kan du ikke umddelbart ophæve. Du bør nok overveje noget tråd - afhængig af hvad dit system skal kunne
Avatar billede soreno Praktikant
17. november 2003 - 19:24 #5
Hvorfor skal den tråd sove - hvad er formålet med det ?

Og er det JXTA du koder ?
Avatar billede joshin Nybegynder
17. november 2003 - 20:18 #6
Ja det er JXTA
Formlet er at undgå busywait i en peiode mens der afventes svar på on en defineret Peergroup findes. hvis den findes tilmeldes, elllers oprettes den, hvis der ikke kommet svar på forsspørsel.
Hvis der kommer en event, er det ikke interessant at vente til tidsperioden udløber.
Et andet design overvejes
Avatar billede soreno Praktikant
17. november 2003 - 20:27 #7
Interessant problem.

Hvis der går længere tid før en group discovery giver svar, end timeout er sat til, så vil der findes 2 grupper der tilsyneladende er ens - men med forskelligt ID.

Hvilken gruppe skal den Peer der finder begge grupper så joine ?
Avatar billede repsak Nybegynder
17. november 2003 - 20:42 #8
*hvad er det lige JXTA er* :-)
Avatar billede soreno Praktikant
17. november 2003 - 20:44 #9
Et Peer-to-peer framework.

http://www.jxta.org/
Avatar billede joshin Nybegynder
03. januar 2004 - 17:35 #10
Andet design vlaht, lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Politiets Efterretningstjeneste

Fullstack softwareudvikler i PET

Unik System Design A/S

QA Engineer

Ennova A/S

Senior Developer