1. 程式人生 > 其它 >執行緒常用方法

執行緒常用方法

守護執行緒、使用者執行緒

執行緒預設的都是使用者執行緒,我們需要設定thread.setDaemon(true)來改為守護執行緒;
守護執行緒,虛擬機器不會監測它,等別的執行緒都跑完了,守護執行緒會自動停止;
  public static void main(String[] args) {

        Teacher teacher = new Teacher();
        Thread thread = new Thread(teacher);
        // TODO 老師設定為守護執行緒
        thread.setDaemon(true);
        thread.start();
        Student student = new Student();
        new Thread(student).start();
    }

    static class Student implements Runnable{

        @Override
        public void run() {
            for (int i = 0; i < 1000; i++) {
                System.out.println("學生到家了!");
            }
            System.out.println("------------------------------------");
        }
    }
    static class Teacher implements Runnable{

        @Override
        public void run() {
            // 死迴圈,但是因為是守護執行緒,虛擬機器不會監測它,等別的執行緒都跑完了,守護執行緒會自動停止;
            while(true){
                System.out.println("老師送學生回家!");
            }
        }
    }

執行緒禮讓yield

Thread.yield();

禮讓不一定成功,只是優先順序的變化,還是看cpu的排程;

執行緒插隊join

Thread.join();

少用,會導致阻塞,瞭解即可;

執行緒狀態

Thread.getState();

優先順序priority

getPriority(),setPriority(int XXX)

先設定優先順序,在啟動,優先順序只有1~10,預設是5;也不一定優先順序高的肯定會跑,看cpu心情;