基础线程机制--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();
}

posted @ 2019-04-12 12:07  yjxyy  阅读(240)  评论(0编辑  收藏  举报