併發編程學習(13)-----第三部分-活躍性,性能和測試

引言:

    本文主要是對10,11,12篇文章進行總結。

總結:

    《避免活躍性危險》的主要內容是介紹如何可能出現的活性性危險有什麼。比如死鎖,活鎖,飢餓。遇到不同的活躍性危險又該如何避免。例如,死鎖可能出現的情況有順序死鎖,動態順序死鎖,多對象調用,資源死鎖等情況,根據不同的情況,我們可以採用固定加鎖順序,開放調用,合理利用資源等手段避免死鎖的發生。

    《性能》的主要內容則是介紹如何分析併發程序的性能和如何提高併發程序的性能。在如何分析上,我們可以從可執行性和可伸縮性上入手。可執行性指在當前已有資源下併發程序的執行效率和狀態。可伸縮性則是指當可以用資源增加時,併發程序的執行效率是否增加的特性。如果要提高併發程序的可執行性和可伸縮性,我們就需要從縮小鎖的範圍,鎖分解,鎖分段,避免使用熱點域,替代獨佔鎖等等方面入手。

    《併發性能的測試》的主要內容是介紹如何對一個併發程序進行測試。包括如何進行正確性測試,性能測試,並在最後介紹了一些其他的測試方法。測試併發程序正確性的時候,我們需要先保證串行執行的真確性,然後從阻塞性測試,安全性測試,資源管理測試,交替性測試等方面分別測試。如果要測試併發程序的性能,我們就因該向併發程序中添加計時測試,並在多種環境下測試性能。注意,在測試性能的時候可能會遇見一些隱藏的陷阱,比如垃圾回收,動態編譯,代碼路徑的不真實採樣,不真實的競爭程度和無用代碼的消除都有可能導致錯誤的性能結論。最後,在正確性測試和性能測試之外,我們可以通過代碼審查,商業工具等其他手段提前檢測出併發程序的問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章