Van a Threadnek egy interrupt függvénye, amivel tudod neki jelezni, hogy le kellene állnia. Ha ezt beállítod, akkor a Threaden belül tudod ellenőrizni az isInterrupted() függvvénnyel, hogy hívtak-e neki ilyet. Ha igen, akkor szépen befejezel mindent amit csinálsz, és kilépsz a run függvényből.
Van egy stop() függvény is, de én azt inkább nem használom...
Amúgy ajánlom ezt:
http://docs.oracle.com/javase/6/docs/technotes/guides/concurrency/threa…