1. 程式人生 > >Java多執行緒(1)-寫在前面的話

Java多執行緒(1)-寫在前面的話

寫在前面的話

編寫正確的程式很難,編寫正確的併發程式則難上加難。正確的編寫併發程式,能夠使得程式的執行效率和效能大幅度提升。而在併發程式中,因為同步造成的各種詭異的問題,卻讓開發者們撓頭。這種問題往往是偶現並很難定位,從而影響了開發的進度,降低了程式的穩定性。如果想正確編寫JAVA併發程式就必須紮實的掌握併發基礎知識,本章目因此而做。

一.併發程式的好處

(1)並行利用資源,不需等待提高資源利用率和系統的吞吐率。

(2)更少的程式響應時間,使介面不卡頓帶來更好的使用者體驗。

(3)給程式帶來更多的模式設計,為效能和體驗的提升提供多種可能性。

(4)能發揮出現代處理器強大的處理能力。

二.併發程式的風險

(1)安全性問題,在沒有充分同步的多執行緒程式中,執行緒操作的優先順序是不可預測的,會有時產生極為奇怪的結果。這種問題往往較難定位。

(2)活躍性問題,當執行緒無法繼續進行下去的時候就會觸發活躍性問題,類似於執行緒中存在預期之外的無限迴圈,死鎖,無限等待等。這種問題出現後,就會讓使用執行緒帶來的好處蕩然無存,這種錯誤同樣是難以分析定位的。

(3)效能問題,多執行緒的好處多多,但卻不能毫無節制的使用執行緒,CPU對執行緒間頻繁的切換同樣消耗大量資源,不正確的使用多執行緒以及鎖的濫用往往會使程式效率急劇降低,甚至還沒有單執行緒執行效率高。所以為任務分配合理的執行緒數量以及對鎖的巧妙使用是極為關鍵的。

總結

以上利弊,可以看出這是一把雙刃劍,正確的使用多執行緒將帶來程式執行效率以及使用者體驗大幅提升,而其中的坑卻又會使你陷入奇怪BUG的噩夢,然而這也正是它極具魅力如此吸引人的地方。程式設計水平的高低盡顯於此。