在Java開發中,wait和interrupt是兩個非常重要的概念。它們通常用于多線程編程中,可以幫助程序控制線程的執行和結束。下面我們將分別介紹這兩個概念及其用法。
wait方法是Object類中的一個方法,用于暫停當前線程的執行,并將其置于等待狀態,直到有其他線程通過notify或notifyAll方法喚醒它。wait方法的使用方式如下:
synchronized (lock) { while (condition) { lock.wait(); } }其中,lock是用于同步的對象,condition是一個條件,當條件不成立時,當前線程就會被掛起,等待lock對象的notify或notifyAll方法。
interrupt是Thread類中的一個方法,用于終止線程的運行。如果一個線程正在等待某個資源,而這個資源又無法被釋放,那么就可能導致該線程無法正常終止。這時候,我們可以使用interrupt方法來終止線程的執行。線程在被中斷時會拋出InterruptedException異常,可以通過捕獲該異常來執行必要的清理操作。interrupt方法的使用方式如下:
Thread thread = new Thread(() ->{ while (!Thread.currentThread().isInterrupted()) { // 執行線程任務 } }); thread.start(); // 在需要終止線程時,調用以下方法 thread.interrupt();這里創建一個線程后,使用了一個while循環來檢查線程是否被中斷。如果線程已經被中斷,就會退出循環從而結束線程的執行。