操作线程的方法
线程休眠
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()方法,操作系统会自动分配时间片给其他线程。