Day 1357:併發

來自王寶令的專欄
要寫好併發程序,首先要知道併發程序的問題在哪裏,只有確定了“靶子”,纔有可能把問題解決,畢竟所有的解決方案都是針對問題的。併發程序經常出現的詭異問題看上去非常無厘頭,但是深究的話,無外乎就是直覺欺騙了我們,只要我們能夠深刻理解可見性、原子性、有序性在併發場景下的原理,很多併發 Bug 都是可以理解、可以診斷的。在介紹可見性、原子性、有序性的時候,特意提到緩存導致的可見性問題,線程切換帶來的原子性問題,編譯優化帶來的有序性問題,其實緩存、線程、編譯優化的目的和我們寫併發程序的目的是相同的,都是提高程序性能。但是技術在解決一個問題的同時,必然會帶來另外一個問題,所以在採用一項技術的同時,一定要清楚它帶來的問題是什麼,以及如何規避。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章