多個執行緒對共同資料的訪問的實現,要根據情況而定
(1)當訪問共同的**的時候:可以使用同乙個runnable物件,這個runnable物件中有這個共享資料,比如賣票系統就可以這麼做。或者這個共享資料封裝在乙個物件當中,然後對這個物件加鎖,也可以實現資料安全訪問。
(2)當各個執行緒訪問的**不同時:這時候要使用不同的runnable物件,有兩種實現方式:
a)將共享資料封裝在另乙個物件當中,然後將這個物件逐一的轉遞給各個runnable物件。運算元據的方法也放進這個物件當中。這樣容易實現各個執行緒對這個資料的同步和共享。
b)將runnable物件作為某乙個類中的內部類,共享資料作為這個外部類的成員變數,每個執行緒對共享資料的訪問也交給外部類的方法,比便對共享資料的互斥和通訊。runnable物件呼叫外部類的操作這個共享資料的方法。
還有一種方式是a)和b)的結合實現,把共享資料封裝到乙個物件當中去,這個物件也實現對這個共享資料的操作,這個物件作為外部類的成員變數。然後再建立多個runnable物件做為內部類,操作這個物件。
總結:對於要是下同步互斥的**要放在不同的方法中,並且放在同乙個物件當中,容易實現互斥和通訊,並且也有利於日後的維護。這樣思路也很清晰。
如有不妥之處,敬請指正。
多個執行緒訪問共享物件和資料的方式
1.如果每個執行緒執行的 相同,可以使用同乙個runnable物件,這個runnable物件中有那個共享資料,例如,賣票系統就可以那麼做。2.如果每個執行緒執行的 不同,這時候就需要用不同的runnable物件,有如下兩種方式來實現這些runnable物件之間的資料共享 1 將共享資料封裝到另外乙個...
多執行緒要訪問共享資料的方式
1.如果每個執行緒執行的 相同,可以使用同乙個runnable物件,這個runnable物件中有那個共享資料,例如 賣票系統 2.如果每個執行緒執行的 不同,這時候需要不同的runnable物件,有如下2種方式來實現這些runnable物件之間的資料共享 1 將共享資料封裝到另外乙個物件中,然後將這...
ios 多執行緒訪問共享資源
什麼是共享資源,一塊資源可能會被多個執行緒去共享,也就是多個執行緒可能會去訪問同一塊資源,也就是共享這一塊資源。比如說多執行緒去訪問同乙個物件,同乙個變數,同乙個檔案。當多個執行緒訪問同一塊資源的時候,很容易引發資料的錯亂和資料的安全問題。這個時候我們在乙個執行緒在訪問那塊資源的時候,我們需要把它個...