Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Timeout in un thread

  1. #1
    Utente di HTML.it L'avatar di Iena87
    Registrato dal
    Dec 2003
    Messaggi
    429

    Timeout in un thread

    Salve,

    ho un thread nel quale eseguo delle operazioni e faccio un read realtivo ad BufferedInputStream.
    Dovrei fare in modo che quando è iniziata la read, attenda per un certo tempo n che il client scriva qualcoda, tempo dopo il quale, se sul buffer non è stato scritto niente, il thread deve terminare.

    Come posso implementare questo timeout?

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    http://java.sun.com/j2se/1.4.2/docs/...leep%28long%29

    Metodo sleep().

    codice:
    try {
      Thread.sleep(1000); // 1 secondo
    } catch(InterruptedException e) {}
    Ovviamente devi implementare Runnable o estendere Thread (ma questo lo sai).

  3. #3
    Utente di HTML.it L'avatar di Iena87
    Registrato dal
    Dec 2003
    Messaggi
    429
    Ma io non devo far "dormire" il Thread.

    Devo fare in modo che se il thread rimane in attesa per più di tot secondi sulla read, allora viene terminato.

    Come fare???

  4. #4
    Utente di HTML.it L'avatar di Iena87
    Registrato dal
    Dec 2003
    Messaggi
    429
    Ho risolto.
    A chi interessa, ho visto questo link

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Non avevi specificato che la lettura avveniva da una Socket, ma da un generico BufferedInputStream (che può essere costruito anche su un file).

    Per i timeout da socket, c'è il metodo apposito setSoTimeout() che fa sollevare una SocketTimeoutException ogni tot millisecondi di timeout nella read dalla socket.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.