執行緒常用方法
阿新 • • 發佈:2021-12-09
守護執行緒、使用者執行緒
執行緒預設的都是使用者執行緒,我們需要設定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心情;