亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

<java并發(fā)編程實戰(zhàn)>學習四

tainzhi / 2535人閱讀

摘要:對象的組合介紹一些組合模式,這些模式能夠使一個類更容易成為線程安全的,并且維護這些類時不會無意破壞類的安全性保證。狀態(tài)變量的所有者將決定采用何種加鎖協(xié)議來維持變量狀態(tài)的完整性。所有權意味著控制權。

對象的組合
介紹一些組合模式,這些模式能夠使一個類更容易成為線程安全的,并且維護這些類時不會無意破壞類的安全性保證。
設計線程安全的類
在設計線程安全類的過程中,需要包含以下三個基本要素:

找出構成對象狀態(tài)的所有變量

找出約束對象狀態(tài)的不可變性條件。

建立對象狀態(tài)的并發(fā)訪問管理策略。

收集同步需求
如果不了解對象的不變性條件與后驗條件,那么就不能確保線程的安全性。要滿足在狀態(tài)變量的有效值或狀態(tài)轉換上的各種約束條件,就需要借助于原子性與分裝性。
依賴狀態(tài)的操作
類的不變性條件與后驗條件約束了對象上有哪些狀態(tài)和狀態(tài)轉移轉換是有效的。在某些對象的方法中還包含一些基于狀態(tài)的先驗條件。
狀態(tài)的所有權
對象封裝它擁有的狀態(tài),反之也成立,即對它封裝的狀態(tài)擁有所有權。狀態(tài)變量的所有者將決定采用何種加鎖協(xié)議來維持變量狀態(tài)的完整性。所有權意味著控制權。
實例封閉 Java監(jiān)視器模式

把對象的所有可變狀態(tài)都封裝起來,并由對象自己的內置鎖來保護。

線程的安全機制
如果一個類是有多個獨立且線程安全的狀態(tài)變量組成,并且在所有的操作中都不包含無效的狀態(tài)轉換,那么可以將線程安全性委托給底層的狀態(tài)變量。 

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://www.ezyhdfw.cn/yun/74397.html

相關文章

  • &lt;java并發(fā)編程實戰(zhàn)&gt;學習

    摘要:線程封閉當訪問共享的可變數(shù)據(jù)時,通常需要使用同步。如果僅在單線程內訪問數(shù)據(jù),就不要同步。這種技術成為線程封閉。棧封閉棧封閉是線程封閉的一種特例,在棧封閉中,只能通過局部變量才能訪問對象。,對象是正確創(chuàng)建的。 線程封閉 當訪問共享的可變數(shù)據(jù)時,通常需要使用同步。一種避免使用同步的方式就是不共享數(shù)據(jù)。如果僅在單線程內訪問數(shù)據(jù),就不要同步。這種技術成為線程封閉(Thread Confine...

    Richard_Gao 評論0 收藏0
  • &lt;java并發(fā)編程實戰(zhàn)&gt;學習

    摘要:無狀態(tài)的是線程安全的,當無狀態(tài)變?yōu)橛袪顟B(tài)時就是不安全的破壞了線程的安全性,非原子性操作競態(tài)條件在并發(fā)編程中,由于不恰當?shù)膱?zhí)行時序而出現(xiàn)的不正確結果是一種非常重要的情況,被稱之為競態(tài)條件。重入意味著獲取鎖的操作的粒度是線程,而不是調用。 這本書的內容是什么? 本書提供了各種實用的設計規(guī)則,用于幫助開發(fā)人員創(chuàng)建安全的和高性能的并發(fā)類。 什么類是線程安全的? 當多個線程訪問某...

    xiaoqibTn 評論0 收藏0
  • &lt;java并發(fā)編程實戰(zhàn)&gt;學習

    摘要:對象的共享上一章介紹了如何通過同步來避免多個線程在同一時刻訪問相同的數(shù)據(jù),而本章將介紹如何共享和發(fā)布對象,從而使它們能夠安全地由多個線程同時訪問。為了確保多個線程的之間對內存寫入操作的可見性,必須使用同步機制。 對象的共享 上一章介紹了如何通過同步來避免多個線程在同一時刻訪問相同的數(shù)據(jù),而本章將介紹如何共享和發(fā)布對象,從而使它們能夠安全地由多個線程同時訪問。 列同步代碼塊和同步方法可...

    zhaochunqi 評論0 收藏0
  • &lt;&lt;Java并發(fā)編程實踐&gt;&gt;有感 ConcurrentLinkedQueue

    摘要:上集算法實現(xiàn)的優(yōu)點當一個線程執(zhí)行任務失敗不影響其他線程的進行最大限度的利用資源能提高程序的伸縮性伸縮性不修改任何代碼升級硬件就能帶來性能上的提高升級硬件帶來的性能提高明顯就是伸縮性良好的缺點代碼復雜影響閱讀性剛開始看的時候沒有正確的思路理解 ConcurrentLinkedQueue(上集) 算法實現(xiàn) CAS CAS的優(yōu)點 當一個線程執(zhí)行任務失敗不影響其他線程的進行 最大限度的利用...

    LucasTwilight 評論0 收藏0
  • x(z).z&lt;a&gt;.0 | x&lt;w&gt;.y&lt;w&gt;.0 | y(v)

    摘要:過程是一個計算單元,計算是通過通訊來完成的。標題的表達式里還有一個符號,表示一個無行為的過程。一個過程的是它和外部產(chǎn)生行為交互的唯一方式。所以如果兩個過程需要通過一個交互,這個必須在兩個過程中都是,其中一方用于發(fā)送,另一方用于接收。 這篇文章的標題是一個π表達式,結尾是一段JavaScript代碼,和這個表達式的含義完全一致,或者說,完成了這個表達式的估值。 π演算(π calculu...

    Tony_Zby 評論0 收藏0

發(fā)表評論

0條評論

tainzhi

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<