AbstractQueuedSynchronizer之parkAndCheckInterrupt函數


函數parkAndCheckInterrupt()阻塞調用着線程,返回時,將指示是否因為中斷而返回!

private final boolean parkAndCheckInterrupt() {
        LockSupport.park(this);
        return Thread.interrupted();
    }

測試代碼:

import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.LockSupport;

public class ParkAndCheckInterrupt {

    private  final boolean parkAndCheckInterrupt() {
        LockSupport.park(this);
        return Thread.interrupted();
    }


    public static void main(String[] args) throws InterruptedException {
        ParkAndCheckInterrupt SPCK = new ParkAndCheckInterrupt();
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("Before Park!");
                if (SPCK.parkAndCheckInterrupt()) {
                    System.out.println("中斷返回!");

                }else {
                    System.out.println("Unpark返回!");
                }
            }
        });

        thread.start();
        TimeUnit.SECONDS.sleep(1);
        thread.interrupt();
     //
LockSupport.unpark(thread);
   } 
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM