Java基礎學習——多線程之中止線程和守護線程

stop()等方法過期之後,中止線程的惟一方法就是結束run()方法
開啓多線程運行一般都是循環結構,只要使用標識位控制住循環,就能夠讓run()方法結束,即線程結束。多線程

特殊狀況:當線程處於了凍結狀態就不會讀取到標記,那麼線程就不會中止。線程

interrupt()方法
將凍結狀態的線程強制運行,並拋出異常InterruptedException。 注意只有在運行狀態的線程才能讀到標識位,最終中止線程。當沒有指定的方式讓線程恢復到運行狀態時,就須要使用該方法對凍結進行消除,並操做標識位讓線程結束
下面的方法能夠配合interrupt()方法結束運行:code

class StopThread implements Runnable
{
    
    public synchronized void run()
    {
        while (!Thread.currentThread.isInterrupted())//正常狀況執行代碼,一旦線程調用interrupt()方法,返回值會變true,跳出循環
        {
            dosomething();
            
        }
    }
}

補充
守護線程setDaemon()
將該線程標記爲守護線程或用戶線程。當正在運行的線程都是守護線程時,Java 虛擬機退出。
該方法必須在啓動線程前調用。
t1.setDaemon(); //t1爲線程對象對象

相關文章
相關標籤/搜索