有如下的程式:
public
class
lockedownthread
extends
thread catch (interruptedexception e) }}
}public
static
void
main(string args)
}
在上面的程式中,啟動執行緒後立刻發出中斷訊號,緊接著在主線程中能迅速檢查到中斷狀態,但是在exception中永遠都無法檢查到中斷狀態,始終都為false。
在沒有任何操作的前提下,中斷狀態卻表現出兩種截然不同的值,這是為什麼呢?
原來當執行緒在非阻塞狀態下中斷時,系統為它設定中斷狀態,但是,只要觸發了interruptedexception,那麼中斷狀態將會被清除,所以在上面的**中,在cath(interruptedexception e)**塊中,永遠也檢查不到中斷狀態為true。
千萬不要在cath(interruptedexception e)**塊裡判斷中斷狀態,因為它始終為假。
IDT 中斷處理 的許可權檢查
x86 實模式下,使用中斷向量表 位址為0 1k的部分,每個向量4個位元組 x86 保護模式下,使用中斷描述符表 idt.cpu中有 idtr 暫存器,儲存 idt 表的位置,lidt 指令用於載入 idt 表到 idtr中。idt 表中的 表項 是 8個位元組,一部分使用者是段選擇符,一部分是段內...
高併發(4) 執行緒的狀態
上篇文章講解了多執行緒的停止方法。我們本篇文章來講講多執行緒的執行狀態。一 多執行緒的執行狀態。我們都知道,執行緒分為新建 就緒 執行 阻塞 死亡這幾種狀態,這些狀態分別是什麼意思呢,來看一下。新建 指的是執行緒新建立出來,並沒有執行start方法,這時候就是新建狀態,沒有執行 就緒 就緒狀態指的是...
MYSQL資料庫簡單的狀態檢查
show processlist可以檢查mysql當前sql語句的執 況,而show status就可以檢查mysql當前的狀態 命令 show status ps 可以通過like來過濾一些不必要的資訊 這個命令返回的資訊相當之多,一共返回了291行資訊 不用版本可能會有所差異哈 我選擇了幾個比較...