導航:首頁 > 編程語言 > java並發式編程

java並發式編程

發布時間:2022-09-27 14:03:49

A. 電腦培訓分享java 並發編程:核心理論

並發編程是Java程序員最重要的技能之一,也是最難掌握的一種技能。它要求編程者對計算機最底層的運作原理有深刻的理解,同時要求編程者邏輯清晰、思維縝密,這樣才能寫出高效、安全、可靠的多線程並發程序。電腦培訓http://www.kmbdqn.com/發現本系列會從線程間協調的方式(wait、notify、notifyAll)、Synchronized及Volatile的本質入手,詳細解釋JDK為我們提供的每種並發工具和底層實現機制。在此基礎上,我們會進一步分析java.util.concurrent包的工具類,包括其使用方式、實現源碼及其背後的原理。本文是該系列的第一篇文章,是這系列中最核心的理論部分,之後的文章都會以此為基礎來分析和解釋。



關於java並發編程及實現原理,還可以查閱《Java並發編程:Synchronized及其實現原理》。


一、共享性


數據共享性是線程安全的主要原因之一。如果所有的數據只是在線程內有效,那就不存在線程安全性問題,這也是我們在編程的時候經常不需要考慮線程安全的主要原因之一。但是,在多線程編程中,數據共享是不可避免的。最典型的場景是資料庫中的數據,為了保證數據的一致性,我們通常需要共享同一個資料庫中數據,即使是在主從的情況下,訪問的也同一份數據,主從只是為了訪問的效率和數據安全,而對同一份數據做的副本。我們現在,通過一個簡單的示例來演示多線程下共享數據導致的問題。


二、互斥性


資源互斥是指同時只允許一個訪問者對其進行訪問,具有唯一性和排它性。我們通常允許多個線程同時對數據進行讀操作,但同一時間內只允許一個線程對數據進行寫操作。所以我們通常將鎖分為共享鎖和排它鎖,也叫做讀鎖和寫鎖。如果資源不具有互斥性,即使是共享資源,我們也不需要擔心線程安全。例如,對於不可變的數據共享,所有線程都只能對其進行讀操作,所以不用考慮線程安全問題。但是對共享數據的寫操作,一般就需要保證互斥性,上述例子中就是因為沒有保證互斥性才導致數據的修改產生問題。


閱讀全文

與java並發式編程相關的資料

熱點內容
微信應用鎖加密 瀏覽:451
數字英雄對程序員的影響 瀏覽:761
程序員培訓學校排名 瀏覽:586
oppo手機如何解開微信的加密 瀏覽:37
學校論文答辯源碼 瀏覽:66
rp在單片機中 瀏覽:177
linux軟體運行命令 瀏覽:354
stcid加密程序 瀏覽:139
把解壓包子放到水裡 瀏覽:286
phpmongodb連接池 瀏覽:945
日本解壓捏泡泡紙 瀏覽:121
環保參比演算法 瀏覽:413
解壓中的刪掉是什麼意思 瀏覽:766
王牌競速什麼時候能停止維修伺服器 瀏覽:488
pdf閱讀器官方 瀏覽:88
程序員那麼愛心 瀏覽:305
字元a經過md5加密 瀏覽:420
綠色的小蝴蝶是個什麼app 瀏覽:18
python編程輸入數字輸出年月日英文 瀏覽:631
程序員槍手 瀏覽:748