1. 程式人生 > >【JAVA併發程式設計】--為什麼要學習JAVA併發?

【JAVA併發程式設計】--為什麼要學習JAVA併發?

        我們常常在學習一門新技術之前,都要問自己一遍:為什麼要學習這門技術?

        就如當年你是為何投入JAVA的大軍,而非C++\PHP\Phython?拿我自己來講,想法尤其簡單。因為那時JAVA最火啊,用這門技術的企業最多,工作最好找。吐舌頭  哈哈,我相信這不光是我一個人的想法。也要感謝當年如此幼稚的想法,為此我義無反顧地走上這條道路,雖無諸多成就,也未曾後悔。

        好像扯遠了,那回到我們主題,JAVA技術體系尤其龐大,為什麼我認為JAVA併發程式設計對於掌握java技術體系是如此的重要。如今網際網路技術依託的硬體技術已非常先進成熟。一般我們現在的服務都部署在配置相對較高的硬體環境中,多核處理器是必然。

        我們可以把當前的服務執行環境理解為:一個程式內部能擁有多個執行緒並行執行。一個執行緒的執行可以被認為是一個CPU在執行該程式。當一個程式執行在多執行緒下,就好像有多個CPU在同時執行該程式。這本來是件好事,多執行緒執行,大大提高了我們的程式執行效率。但令人頭疼的多執行緒安全問題,也隨之而來。如果一個執行緒在讀一個記憶體時,另一個執行緒正向該記憶體進行寫操作,那進行讀操作的那個執行緒將獲得什麼結果呢?是寫操作之前舊的值?還是寫操作成功之後的新值?或是一半新一半舊的值?或者,如果是兩個執行緒同時寫同一個記憶體,在操作完成後將會是什麼結果呢?是第一個執行緒寫入的值?還是第二個執行緒寫入的值?還是兩個執行緒寫入的一個混合值?因此如沒有合適的預防措施,任何結果都是可能的。而且這種行為的發生甚至不能預測,所以結果也是不確定性的。


        所以綜合而言,學習併發程式設計有最重要的2點。

        1、理解併發程式設計原理,便於我們更好的提高CPU的使用率,加快任務執行速度,降低系統響應時間;

       2、運用好併發程式設計能幫我們很好地解決多執行緒安全問題;

    其實當前筆者對JAVA併發的理解也不是很深入,計劃也是邊學習邊記錄,期待自己在此方向有所進步。感興趣的同學可以跟隨筆者一起開始我們的JAVA併發學習:JAVA併發程式設計--學習路線