多線程編程就像一個沼澤,中間遍佈各種各樣的陷阱。大多數開發者絕大部分時間都是在做上層應用的開發,並不需要過多地涉入底層細節。但是在多線程編程或者說是並發編程中,有非常多的陷阱被埋在底層細節當中。如果不知道這些底層知識,可能在編寫過程中完全意識不到程序已經出現了漏洞,甚至在漏洞爆發之後也很難排查出具體原因進而解決漏洞。雖然前面提到的漏洞聽起來很嚇人,但是相信通過我們逐步的抽絲剝繭,在最後一定能掌握大量的實用工具來幫助我們解決這些問題,實現可靠的並發程序。
這段代碼實現的基本功能就是在兩個線程中分別對一個整型累加一百萬次,那麼我們期望的輸出應該總共是兩百萬。但在我的電腦上運行的結果只有1799369,而且每次都不一樣,相信在你的電腦上也會運行得到一個不同的結果,但是肯定會達不到兩百萬。