java多线程3:操作线程的方法

操作线程的方法

线程休眠

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

上一篇:JS 调用apply报错:CreateListFromArrayLike called on non-object


下一篇:kali/parrot更新源和安装vmtools