瘋狂JAVA講義 第十六章 多執行緒(下)

2021-04-24 17:26:57 字數 551 閱讀 7164

看過我昨天的部落格,大家肯定對多執行緒有所了解,今天要講多執行緒中比較高層次的東西。首先講下jdk1.5新出來的執行緒同步機制---同步鎖(lock),其實和synhronized方法用法差不多,只是更靈活。同步鎖有多種,其中一般為了執行緒安全都用reentrantlock(可重入鎖),eg

下面講下執行緒的協調

void   notify():      喚醒乙個正在等待該物件的執行緒。   

void   notifyall():   喚醒所有正在等待該物件的執行緒。eg

當使用同步鎖時不能使用wait(),notify(),notifyall(),而要使用condition例項來操作,eg

執行緒通訊,eg(使用管道通訊)

但一般不用以上方法來通訊而是利用共享資料來通訊,這樣更方便,而網路中線程之間的通訊就用的比較多了,這我會過兩天的blog中講。

利用執行緒組來分組處理未處理的異常,eg

處理未處理的異常,eg

最後講個執行緒池的例子,jdk1.5本身提供了執行緒池,所以很方便,eg

以後我將講我以前做過的斷點續傳工具,就是利用了執行緒池,今天就到這裡

第十六章 執行緒棧

1 基礎 1 執行緒初始化時,執行緒棧預設1m,所有頁面都是page readwrite屬性,但只為前兩個頁面調撥了物理儲存器,位址低的那個頁面叫防護頁面,為其指定了page guard屬性 2 當執行緒訪問到防護頁面時,由於指定了page guard屬性,系統會得到通知,系統會為防護頁面的下乙個頁...

第十六章 tcp wrappers

在伺服器向外提供的tcp服務上包裝一層安全檢測機制。外來連線請求首先通過這個安全檢測,獲得安全認證後才可被系統服務接受。hosts.allow hosts.deny 在配置檔案中為各服務分別定義訪問控制規則實現訪問控制,檔案中的規則是即時生效的。配置檔案語法 1 daemon list client...

第十六章 控制迴圈

第十六章 控制迴圈 16.1 選擇迴圈的種類 1.在大多數語言中,你只能用到少數幾種迴圈 1 計數迴圈 執行次數一定。2 連續求值的迴圈 預先並不知道將要執行多少次,它會在每次迭代時檢查是否應該結束。3 無限迴圈 一旦啟動就一直執行下去。4 迭代器迴圈 對容器類裡面的每個元素執行一次操作。2.什麼時...