Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    I metodi deprecati Thread.stop(), ecc. servono solo per le applet?

    Salve,

    leggendo i Thread ho appreso che i metodi suspend, resume e stop della classe Thread sono deprecati in quanto poco sicuri.
    Al loro posto vi sono altre procedure (contenute nel presente articolo della Sun ).

    Ma questi metodi per fermare e ripristinare un Thread non dovrebbero avere senso solo nelle applet? In altre parole la necessità di implementare metodi simili per una persona che non sviluppa applet si potrebbero presentare?

    Grazie dell'attenzione,
    Matteo.
    Gutta cavat lapidem
    [La goccia scava la pietra]
    ***
    (Ovidio)

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: I metodi deprecati Thread.stop(), ecc. servono solo per le applet?

    Originariamente inviato da matthew80
    Ma questi metodi per fermare e ripristinare un Thread non dovrebbero avere senso solo nelle applet?
    E perchè mai?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Perchè penso che un'applet mentre è in esecuzione io ne fermo il funzionamento, ma in un'applicazione che senso ha far partire un compito che già so che non voglio portare a termine?

    Vabbè magari è solo un abbaglio....
    Gutta cavat lapidem
    [La goccia scava la pietra]
    ***
    (Ovidio)

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,305
    Anche i Thread possono essere sospesi... ad esempio in attesa dei dati su cui lavorare. Vedi il classico esempio dello scenario Produttore/Consumatore.

    E possono essere terminati, ad esempio in conseguenza di un eventuale errore.

    che senso ha far partire un compito che già so che non voglio portare a termine
    E chi ti dice che lo sai a priori? Se l'utente inizia un download che è guidato da un thread, e a metà lo vuole fermare, mica è previsto fin da subito che il download non terminerà...!?


    Quindi... non capisco proprio perchè mai dovrebbero essere peculiarità delle applet.


    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

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da matthew80
    Perchè penso che un'applet mentre è in esecuzione io ne fermo il funzionamento, ma in un'applicazione che senso ha far partire un compito che già so che non voglio portare a termine?

    Vabbè magari è solo un abbaglio....
    Sì .... è un abbaglio.

    Innanzitutto, giusto a scanso di equivoci, java.applet.Applet ha in effetti dei metodi start()/stop() (oltre a init() e destroy()) che però non centrano nulla con i thread. Che una applet possa essere "stoppata" è solo perché "vive" all'interno di un "contenitore", ovvero tipicamente il browser. E quindi ha un "ciclo di vita" diverso e più particolare rispetto ad una classica applicazione "desktop".
    Se ad esempio si chiude la finestra del browser o lo si fa puntare ad un altro URL, la applet deve essere informata del fatto che si deve fermare/terminare.

    La sospensione o terminazione dei thread è un'altra cosa e riguarda qualunque tipo di applicazione Java. Per tutti gli scenari in cui un thread sta compiendo operazioni "lunghe" che l'utente, per qualuque questione sua, vuole terminare prima che arrivi al normale completamento.

    Come dice giustamente l'articolo della Sun, i metodi stop() e suspend() di Thread sono deprecati e da non usare mai. Se si deve gestire la terminazione/sospensione, il thread va scritto e gestito in modo da essere "cooperativo" nei confronti di una possibile sospensione/terminazione.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  6. #6
    Capito...Grazie a tutti
    Gutta cavat lapidem
    [La goccia scava la pietra]
    ***
    (Ovidio)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.