在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ 在Java AQS中,忽略中斷和響應(yīng)中斷是什么意思?

在Java AQS中,忽略中斷和響應(yīng)中斷是什么意思?

在Java的AbstractQueuedSynchronizer類中,有
acquire

acquireInterruptibly
兩個(gè)方法。

從網(wǎng)上看分別表示「忽略中斷」和「響應(yīng)中斷」。

忽略響應(yīng)這兩個(gè)字眼很迷,不知道是什么意思。

回答
編輯回答
款爺

acquire嘗試獲取資源,成功則直接返回,不成功則進(jìn)入等待隊(duì)列,這個(gè)過程不會(huì)被線程中斷,被外部中斷也不響應(yīng),獲取資源后才再進(jìn)行自我中斷selfInterrupt();

/**
     * Convenience method to interrupt current thread.
     */
    static void selfInterrupt() {
        Thread.currentThread().interrupt();
    }

acquireInterruptibly支持響應(yīng)中斷

public final void acquireInterruptibly(int arg)
            throws InterruptedException {
        if (Thread.interrupted())
            throw new InterruptedException();
        if (!tryAcquire(arg))
            doAcquireInterruptibly(arg);
    }
2017年5月15日 10:01