线程休眠
Thread.sleep()
try{ thread.sleep(2000); }catch(Interruptexception e){ e.printStackTrace(); }
使线程休眠2000ms,被sleep()的线程醒来后并不能保证进入运行状态,但可以保证进入就绪状态。
线程的加入
我们猜想一个场景:你在客厅看电视,这时候来了收水费的;这时候要收水费,因此你只能去交水费,交完后才能再继续看电视
此时就有了join()方法 :
线程1的run(){
线程2.join()
}
线程1在执行到线程2.join()时,必须等线程2执行完毕才能继续执行该线程1。
线程的中断
在之前,经常使用stop()方法来执行线程的中断操作;但是现在的JDK版本早就废弃了这种操作
而是采用死循环里,设置一个boolbean变量来控制的方法
public class InterruptTest implements Runnable{ private boolbean isContinue=false; @override public void run(){ //写个死循环 while(ture){ //... //通过设置boolbean变量来控制 if(isContibue){ Break; } } } public void setContinue(){ this.isContinue=Ture; } }
线程的礼让
线程礼让通过yield()来实现,指的是给当前处于运行状态的线程给与暗示,表示可以在系统资源充沛的情况下,让给其他线程,但是这仅仅只是暗示,没有一种机制能保证一定会礼让给其他线程。
对于多任务的操作系统,不需要使用yield()方法,操作系统会自动分配时间片给其他线程。