基础线程机制--Daemon,sleep(),yield()
Daemon
守护线程是程序运行时在后台提供服务的线程,不属于程序中不可或缺的部分,当所有非守护进程执行完成时,程序也就终止,同时会杀死所有的守护进程。main()属于非守护线程。可以使用setDaemon()将一个线程设置为守护线程。
public static void main(String[]args){
Thread thread=new Thread(new MyRunnable());
thread.setDaemon(true);
}
sleep()
Thread.sleep(millisec)方法会休眠当前正在执行的线程,millisec的单位为毫秒
sleep()可能会抛出InterruptedException,因为异常不能跨线程传播回main()中,因此必须在本地进行处理,线程中抛出的其他异常也需要在本地进行处理。
public void run(){
try{
sleep(100);
}catch(Exception e){
e.printStackTrace();
}
}
yield()
对静态方法yield()调用声明了当前线程已经完成了生命周期中最重要的部分,可以切换给其他的线程来执行。该方法只是对线程调度器的一个建议,而且也只是建议由相同优先级的其他线程可以运行。
public void run(){
Thread.yield();
}