線程掛起和喚醒,LockSupport

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);
	}
}


輸出:
喚醒線程   
掛起線程
結束線程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章