為什麼需要中斷操作?
案例:寫乙個執行緒死迴圈,比如執行到某乙個時刻,我需要去關掉
public class demo implements runnable catch (interruptedexception e) }}
public static void main(string args)
}
方式一:stop()
古老jdk提供了stop()廢棄方法, 開發中不要使用。因為一呼叫,執行緒就立刻停止,此時有可能引發相應的執行緒安全性問題
案例:執行run方法 i++ 休眠兩秒 主線程休眠1秒 調stop方法 立刻就暴力停掉了,後面的**還沒執行就停了。
public class unsafewithstop extends thread catch (interruptedexception e)
j++;
}public void printf()
public static void main(string args) throws interruptedexception
}
方式二:thread.interrupt方法
案例:呼叫interrupt不中斷
public class interrupdemo implements runnable
}public static void main(string args) throws interruptedexception
}
原始碼中有寫出,大致意思是呼叫interrupt方法,會給這個執行緒乙個標記,標記這個執行緒準備結束執行,如果你在執行也不會結束
條件判斷是否被標記
public class interrupdemo implements runnable
}public static void main(string args) throws interruptedexception
}
方式三:自定義標識終止執行緒
案例只是定義乙個volatile標識判斷
public class myinterrupdemo implements runnable
}public static void main(string args) throws interruptedexception
}
JS DOM操作案例
1 var text document.queryselector input 2 獲取焦點 3 text.onfocus function 7 8 失去焦點 9 text.onblur function 13 文字 請輸入6 12位密碼 給每個可以換膚的迴圈註冊點選事件 3for var i 0 ...
Python物件導向封裝操作案例詳解
封裝小明愛跑步 存放家具 封裝 是物件導向程式設計的一大特點 物件導向程式設計的 第一步 將 屬性 和 方法 封裝 到乙個抽象的 類 中 外界 使用 類 建立 物件,然後 讓物件呼叫方法 物件方法的細節 都被 封裝 在 類的內部 需求小明 體重 75.0 公斤 小明每次 跑步 會 0.5 公斤 小明...
c 迴圈佇列基本操作案例
迴圈佇列其實是為了解決順序棧的假溢位。設佇列大小是m。這裡特別提出一點就是計算佇列長度 q.rear q.front maxqsize maxqsize 此處說明原因,因為此處為迴圈佇列。因為迴圈佇列中,當q.rear的值小於q.front時,他們的差是負數要加上佇列最大長度才是佇列的長度,而如果他...