第十三章 併發

2021-06-08 06:12:53 字數 754 閱讀 6663

13.1 動機

13.2 基本執行緒

如果必須要控制現成的執行順序,最好是根本不用執行緒,而是自己編寫特定順序彼此控制的協作子程式。

繼承thread類或者實現runnable介面。

內部類實現。

13.3  共享受限資源

1)如果要對類中的某個方法進行同步控制,最好同步所有方法。如果忽略了其中乙個,通常很難確定這麼做是否會有負面影響。

2)當去除方法的同步控制時,要非常小心。通常這麼做是基於效能方面的考慮,但在jdk1.3、1.4中,同步控制所需的負擔已經大大減少。此外,只應在使用效能評價工具證實了同步控制確實是效能瓶頸的時候,才這麼做。

有時,你只是希望防止多個執行緒同時訪問方法內部的部分**而不是防止整個方法。通過這種方式分離出來的**段被稱為「臨界區」,它也使用synchronized關鍵字建立。在這裡,synchronized被用來指定某個物件,此物件的鎖被用來對花括號內的**進行同步控制。

13.4 執行緒狀態

13.5執行緒之間的協作

13.5.1 等待與通知

呼叫sleep()的時候鎖並沒有被釋放。wait()方法的確釋放了鎖。

13.5.2 執行緒間使用管道進行輸入輸出

13.6 死鎖

13.7 正確的停止方法

不使用已經廢棄了的stop(),而是使用乙個標誌來告訴執行緒何時通過退出其run()方法來終止自己。

13.8 中斷阻塞執行緒

使用interrupt()

13.9 執行緒組

失敗的嘗試

第十三章 類

1.類簡單地說是乙個性的資料型別。類當中有資料成員,和成員函式。類的基本思想就是體現出資料的抽象和封裝。2.這裡只需要說明乙個問題即可 就是類成員函式的const型別 class screen public const int get const int i const int j const 這裡...

第十三章 事件

1 事件的作用 事件是對委託的封裝,如同屬性對字段的封裝。封裝後可以在委託上實現更複雜的邏輯。1.1 封裝訂閱 委託允許使用 對其進行賦值,但向乙個委託例項賦值多個委託時,使用 會造成覆蓋之前的委託。事件只支援 或 對事件進行賦值 1.2 封裝發布 委託可以在其他類進行訪問,而事件可以確保只有包容類...

第十三章 RememberMe

跟我學shiro第13章demo rememberme 1 首先在登入頁面選中rememberme 然後登入成功 如果是瀏覽器登入,一般會把rememberme的cookie 寫到客戶端並儲存下來 2 關閉瀏覽器再重新開啟 會發現瀏覽器還是記住你的 3 訪問一般的網頁伺服器端還是知道你是誰,且能正常...