LockSupport 可以掛起和喚醒線程
- park() 和 unpark() 是兩個靜態方法分別表示掛起和喚醒
- unpark() 可以執行在 park() 之前。標識這個線程已經做過喚醒操作,線程會直接略過阻塞。
package multhread;
import java.util.concurrent.locks.LockSupport;
public class LockSupportDemo implements Runnable{
@Override
public void run() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("掛起線程");
//掛起線程
LockSupport.park();
System.out.println("結束線程");
}
public static void main(String[] args) throws InterruptedException {
Thread t = new Thread(new LockSupportDemo());
t.start();
System.out.println("喚醒線程 ");
//LockSuporrt可以先喚醒線程
LockSupport.unpark(t);
}
}
輸出:
喚醒線程
掛起線程
結束線程