Sì .... è un abbaglio.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....
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.