Avatar billede mercutio Nybegynder
22. februar 2005 - 16:57 Der er 8 kommentarer

Hvordan dræbes en tråd der står og venter på io?

Hej Eksperter.

Jeg har en tråd der kalder en webservice men pga. der ikke altid kommer svar så hænger min tråd. Jeg vil gerne kunne dræbe tråden så den forbindelse jeg har skabt til webservicen bliver dræbt. Hvordan gør man det?
Mvh. Merc.
Avatar billede arne_v Ekspert
22. februar 2005 - 16:59 #1
Du har fårhåbentligt en reference til den og kan kalde interrupt på den ?
Avatar billede mercutio Nybegynder
22. februar 2005 - 17:04 #2
Det har jeg. Men vil det virke?
Avatar billede mercutio Nybegynder
22. februar 2005 - 17:04 #3
Eller jeg mener kan man det? jeg troede kun man kunne interrupte en thread der var i sleep eller wait.
Avatar billede arne_v Ekspert
22. februar 2005 - 17:06 #4
Jeg mener også at du kan hvis den venter på IO.
Avatar billede arne_v Ekspert
22. februar 2005 - 17:06 #5
If this thread is blocked in an invocation of the wait(), wait(long), or wait(long, int) methods of the Object  class, or of the join(), join(long), join(long, int), sleep(long), or sleep(long, int), methods of this class, then its interrupt status will be cleared and it will receive an InterruptedException.

    If this thread is blocked in an I/O operation upon an interruptible channel then the channel will be closed, the thread's interrupt status will be set, and the thread will receive a ClosedByInterruptException.

    If this thread is blocked in a Selector then the thread's interrupt status will be set and it will return immediately from the selection operation, possibly with a non-zero value, just as if the selector's wakeup method were invoked.

    If none of the previous conditions hold then this thread's interrupt status will be set.
Avatar billede arne_v Ekspert
22. februar 2005 - 17:07 #6
Så spørgsmålet er nok om det er en "interruptible channel" ?
Avatar billede arne_v Ekspert
22. februar 2005 - 17:10 #7
I nyere Java version bør du kunne ændre timeout med:

System.setProperty( "sun.net.client.defaultConnectTimeout", "100");
System.setProperty( "sun.net.client.defaultReadTimeout ", "100");
Avatar billede arne_v Ekspert
10. april 2005 - 18:31 #8
OK ?
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