本文由广州疯狂软件java培训分享:
如何停止线程。
stop()方法已过时。
新的stop方案:stopFlag()
privatebooleanflag=true;
publicvoidrun(){while(flag){<!--code-->}}
publicvoidstopFlag(){this.flag= false;};
stopFlag()弊端:
若while内部中代码在运行中(尤其是冻结状态),无法读取到标记,则无法立即结束线程。
若线程处于冻结状态未能结束会导致不可预测后果。
解决方案:
当没有指定的方式让冻结的线程恢复到运行状态,需要清除冻结状态。
强制清除冻结状态,令线程回复到运行状态,即可操作标记(flag)来结束线程。
Thread类提供interrupt()方法,可强制唤醒冻结线程。
守护线程
Thread().setDeamon(true);设为守护线程(后台线程)。
若仅存守护线程,则全部退出。
获取执行权,Thread().join();
当A线程执行到了B线程的join()方法时,A线程就会等待。等B线程执行完毕,A才继续执行。
join()可用来临时加入线程执行。
Thread().toString();
return "线程名"+"线程优先级"+"线程组"
线程组。若A线程开始B、C线程,则B、C属于A组。
线程优先级。
默认优先级为5
setPriority(int newPriority);更改线程优先级(1~10)。建议使用Thread类中的常量。
Thread().yield();
暂停当前正在执行的线程对象,并执行其它线程。
疯狂软件教育中心依托开发团队的强大技术实力,把企业最新技术融入实训课程,打造金牌的品质,才能给予学员黄金的未来,疯狂软件凭借过硬的技术实力与丰富的项目开发经验,赢得了社会的肯定。疯狂软件Java培训师资力量强大,课程内容深入,为学员高薪就业做了很好的铺垫,拥有丰富就业指导经验的就业团队也成为了学员高薪就业的先天优势。地址:广州天河区车陂沣宏大厦3楼。