線程的停止的代碼
/*
?* 終止線程的兩種方式
?* 1.線程正常執(zhí)行完畢(因?yàn)樗陨硎怯写螖?shù)的限制的,執(zhí)行完了就結(jié)束了)
?* 2.外部干涉(加入標(biāo)識(shí))
?* 不要使用stop,destroy因?yàn)樗鼈冞^(guò)時(shí)了,有點(diǎn)不安全
?*
?*/
public class TerminateThread implements Runnable{
?? ?//1.加入標(biāo)識(shí)標(biāo)記線程體是否可以運(yùn)行
?? ?private boolean flag=true;? //這個(gè)就是一個(gè)開關(guān)
?? ?private String name;
?? ?
?? ?public TerminateThread(String name) {
?? ??? ?this.name = name;
?? ?}
?? ?@Override
?? ?public void run() {
?? ??? ?int i=0;
?? ??? ?//2.關(guān)聯(lián)標(biāo)識(shí)為真線程體可以運(yùn)行,假的時(shí)候就結(jié)束運(yùn)行
?? ??? ?while(flag) {
?? ??? ??? ?System.out.println(name+"-->"+i++);
?? ??? ?}
?? ??? ?
?? ?}
?? ?//3.對(duì)外提供方法改變標(biāo)識(shí)
?? ?public void change() {
?? ??? ?this.flag=false;
?? ?}
?? ?public static void main(String[] args) {
?? ??? ?TerminateThread tt=new TerminateThread("老大");
?? ??? ?new Thread(tt).start();
//?? ??? ?tt.flag=false;
?? ??? ?for(int i=0;i<100;i++) {
?? ??? ??? ?if(i==50) {
?? ??? ??? ??? ?tt.change();
//?? ??? ??? ??? ?tt.flag=false;
?? ??? ??? ?}
?? ??? ??? ?System.out.println("主線程在運(yùn)行");
?? ??? ?}
?? ??? ?
?? ?}
}
標(biāo)簽: