Kā lietotnē Java iznīcināt java.lang.Thread
?
Skatiet šo diegu Sun par to, kāpēc tika atcelts Thread.stop()
. Tajā ir detalizēti aprakstīts, kāpēc šī metode bija slikta un kas būtu jādara, lai droši apturētu pavedienus kopumā.
Viņi iesaka izmantot koplietojamo mainīgo kā karodziņu, kas pieprasa fona pavedienam apstāties. Pēc tam šo mainīgo var iestatīt cits objekts, pieprasot pavediena izbeigšanu.
Parasti jums nav..
Jūs lūdzat to pārtraukt to, ko tas dara, izmantojot Thread.interrupt() (javadoc saite).
Labs paskaidrojums, kāpēc, ir atrodams javadoc šeit (java technote link).
Viens no veidiem ir iestatīt klases mainīgo un izmantot to kā brīdinājuma elementu.
Class Outer {
public static volatile flag = true;
Outer() {
new Test().start();
}
class Test extends Thread {
public void run() {
while (Outer.flag) {
//do stuff here
}
}
}
}
Iestatiet ārējo klases mainīgo, t. i., iepriekš minētajā piemērā flag = true. Iestatiet false, lai 'nogalinātu' pavedienu.