par contre, pour tuer le thread, je pense pas que ca soit faisable, non seulement 'syntaxiquement' mais surtout 'algorithmiquement', je m'explique :
Tu dis que ton run fait de longs traitements, il doit donc, pendant ce traitement agir sur d'autres objets, sur des variables, ... si tu le tues, brutalement, tu risques de laisser des objets dans un état tout à fait instable et c'est pas forcément terrible. Tu peux également te retrouver avec d'autres threads bloqués (death lock)
D'autre part, tu peux faire une méthode destroy qui appelle super.destroy() mais qui nettoie tout ton bordel avant (remise en place des variables, ...). Tu fais un petit notify pour reveiller les threads qui pourrait etre bloqués par le tien, et puis pof, tu le 'destroy'.
Contrairement a la soluce précédente, je ne garantis RIEN du tout, c'est pour le plaisir ...