swing的單執行緒規則是:swing中的元件以及模型只能在這個事件分發執行緒中進行建立、修改以及查詢。模型物件與檢視物件的控制流
如果體格資料模型必須被多個執行緒共享,而且由於阻塞,一致性或複雜度等原因而無法實現乙個執行緒安全的模型時,可以考慮使用分解模型設計。所有gui框架基本上都實現為單執行緒的子系統,其中所有與表現相關的**都作為任務在事件執行緒中執行。由於只有乙個事件執行緒,因此執行時間較長的任務會降低gui程式的影響性,所以應該放在後台執行緒中執行。在一些輔助類(例如swingworkrt以及在本章中構建的backgroundtask)中提供了對取消、進度指示以及完成指示的支援,因此對於執行時間較長的任務來說,無論在任務中包含了gui元件還是非gui元件,在開發時可以得到簡化。
Java併發程式設計實戰 總結
1.可變狀態是至關重要的。所有的併發問題都可以歸結為如何協調對併發狀態的訪問,可變狀態越少,就越容易確保執行緒安全性。2.盡量將域宣告為final型別,除非需要它們是可變的。3.不可變物件一定是執行緒安全的。不可變物件能極大地降低併發程式設計的複雜性。它們更為簡單而且安全,可以任意共享而無須使用加鎖...
java併發程式設計實戰 簡介
1 併發和並行的區別 併發 多個程式在同一時間段執行,只有乙個cpu。並行 多個程式在同一時刻執行,有多個cpu。2 執行緒帶來的風險 1 安全性問題 永遠不發生糟糕的事情 兩個或多個執行緒同時訪問乙個變數,可能會出現差錯。例如,兩個執行緒同時對乙個變數執行讀操作,從而它們得到了相同的值,違背了該變...
《Java併發程式設計實戰》 5
每當看到new thread runnable start 時,並且你希望獲得一種更靈活的執行策略時,請考慮使用excecutor來代替thread。completionservice將execute和blockingqueue的功能融合在一起。executorcompletionservice實現...