Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [JAVA] Thread.sleep()

  1. #1

    [JAVA] Thread.sleep()

    Vediamo se ho capito come funziona sleep()...

    Quando viene chiamato questo metodo statico con timeout, il thread in esecuzione passa dallo stato running a bloccato mediante sleep per il tempo del timeout. Alla fine del timeout, torna nello stato runnable e diventa eleggibile per poter accedere alla CPU.

    Anche se esistesse un solo thread nell applicazione, questo sarebbe comunque posto in stato di sleep, senza la possibilita di accedere alle risorse per il tempo stabilito, per poi, una volta terminato il timeout, riprendere il controllo della CPU essendo l unico thread dell applicazione.

    Giusto?

  2. #2
    Ho letto adesso che il metodo sleep() fa si che il thread che va in sleep non rialscia il lock dell oggetto.
    Questo vuol dire che un altro thread puo occupare la CPU ma se tenta di acquisire il lock dello stesso oggetto del thread che sta in sleep mode, si incappa in un eccezione?

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da ragnonerodocet
    Ho letto adesso che il metodo sleep() fa si che il thread che va in sleep non rialscia il lock dell oggetto.
    Questo vuol dire che un altro thread puo occupare la CPU ma se tenta di acquisire il lock dello stesso oggetto del thread che sta in sleep mode, si incappa in un eccezione?

    Penso che rimanga semplicemente bloccato, in attesa che il lock venga tolto.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Ho letto inoltre una slide contenente gli stati dei thread secondo la sun.
    Quando un thread va in sleep mode, si dice bloccato (come quando viene chiamata la join).

    Cosa succede quando il timeout della sleep termina?

    Da quello che capisco dalla slides, sembra che il thread sul quale è invocata la sleep vada subito in stato running.

    Ma non credo sia così, nonostante la mia ignoranza.

    Però non capisco effettivamente cosa accada quando il timeout della sleep termina.

    Chi me lo spiega???

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.