一、共享資源競爭問題

      在Java語言的并發(fā)編程中,由于我們不知道線程實際上在何時運行,所以在實際多線程編程中,如果兩個線程訪問相同的資源,那么由于線程運行的不確定性便會在這種多線程中產生訪問錯誤。所以為了避免這一情況的發(fā)生,我們在編程的時候需要把并發(fā)執(zhí)行的線程中用于訪問這一共享資源的方法進行同步處理,以避免并發(fā)對于共享資源產生的影響。

      并發(fā)模式在解決線程沖突的問題時,基本上都是采用序列化訪問共享資源的方案。這在我的理解中,就是我們要控制同一時刻只能讓一個線程對這一共享資源進行訪問。

二、synchronized關鍵字的使用

1.synchronized對于類普通成員方法的修飾

      Java語言中,每一個對象都含有單一的鎖(監(jiān)視器)。而synchronized的作用之一就是修飾使用了共享資源的成員方法,這樣在線程通過對象調用該方法時,該對象都會被加鎖。這時候如果需要調用該對象的另一個synchronized方法,則需要在第一個方法調用完畢后再進行,這就實現(xiàn)了最基本的同步。

      例1:使用synchronized修飾方法和未修飾方法的區(qū)別

    (1)使用synchronized修飾過的方法,在多線程執(zhí)行的過程中,程序依次輸出遞增3的數(shù)字

大數(shù)據(jù)培訓,云培訓,數(shù)據(jù)挖掘培訓,云計算培訓,高端軟件開發(fā)培訓,項目經理培訓

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網站設計培訓,網站建設培訓學習是年輕人改變自己的最好方式