1.如果每個執行緒執行的**相同,可以使用同乙個runnable物件,這個runnable物件中有那個共享資料,
例如:賣票系統
2.如果每個執行緒執行的**不同,這時候需要不同的runnable物件,有如下2種方式來實現這些runnable物件之間的資料共享:
(1)將共享資料封裝到另外乙個物件中,然後將這個物件逐一傳遞給各個runnable物件。每個執行緒對共享資料的操作方法也分配到那個物件身上去完成,這樣容易實現對對資料進行各種操作的互斥和通訊。
(2)將這些runnable物件作為乙個類的內部類,共享資料作為這個外部類中的成員變數,每個執行緒對共享資料的操作方法也分配為外部類,以便實現對共享資料進行各子操作的互斥和通訊,
多執行緒訪問共享數方式的總結
1.多個執行緒訪問共享資料的方式 多個執行緒訪問共享資料分為兩種方式 1 每個執行緒執行操作共享資料的方式相同 2 每個執行緒執行操作共享資料的方式不同 2.多個執行緒執行操作共享資料的方式相同 如果每個執行緒執行操作共享資料的方式相同,那麼可以使用同乙個runnable物件,將共享資料放在runn...
多執行緒訪問共享記憶體的不加鎖實現方式
多執行緒訪問共享記憶體,為了實現同步,常採用加鎖的方式。那麼,如何採用不加鎖的方式來達到執行緒同步的目的呢?思路 儲存兩塊共享記憶體,一塊用於讀操作,一塊用於寫操作。初始時,兩塊共享記憶體內容一致。讀操作均是讀取第一塊共享記憶體的資料 寫操作均是寫第二塊共享記憶體。在多個讀操作乙個寫操作的情況下,讀...
ios 多執行緒訪問共享資源
什麼是共享資源,一塊資源可能會被多個執行緒去共享,也就是多個執行緒可能會去訪問同一塊資源,也就是共享這一塊資源。比如說多執行緒去訪問同乙個物件,同乙個變數,同乙個檔案。當多個執行緒訪問同一塊資源的時候,很容易引發資料的錯亂和資料的安全問題。這個時候我們在乙個執行緒在訪問那塊資源的時候,我們需要把它個...