最近研究了一下多執行緒,主要針對於多執行緒共享同一資源,和多執行緒執行各自的資源
其實主要要就是搞清楚資源的含義:你要操作什麼,什麼就是執行緒的資源!
1.先說一下多執行緒執行各自的資源:
執行各自的資源從字面意思就可以看出來執行緒執行的資源互不干涉,各自執行各自的。
案例如下:
控制台輸出:package testthread;
public
class
ticketsthread
}class
tickets
extends
thread
}synchronized void sale() catch(interruptedexception e)
}
}
}
次案例我開了兩個執行緒,操作各自的資源!
這是我開啟的兩個執行緒:
從控制太列印結果可以看出來,各自操作各自的10張票,互不干涉,tickets tickets1 = new tickets();
tickets1.start();
tickets tickets2 = new tickets();
tickets2.start();
這段**是列印執行緒名稱:
thread.currentthread().getname()
2.說一下多執行緒共享同一資源:共享同一資源源從字面意思就可以看出來兩個以上執行緒執行同一資源。
案例如下:
控制台列印結果:package testthread;
public
class
ticketsthread
}class
tickets
extends
thread
}synchronized void sale() catch(interruptedexception e)
}
}
}
此案例我開了兩個執行緒操作以同一資源類似於火車站兩個視窗同時賣票系統,
兩個執行緒操作共同的10張票,按照順序依次遞減,
以下是操作同一資源的**:
這樣就很輕鬆的理解了多執行緒操作同一資源,和各自資源!!!!!tickets tickets =
new tickets();
newthread(tickets).start();
newthread(tickets).start();
初學多執行緒(一) 保護共享資源
1.共享資源未被保護,被多個執行緒並行訪問,會發生資源分配上的衝突,兩種方法保護共享資源 ps 共享資源像靜態類中的字段,方法 how to protect shared resources from concurrent access?1.使用 interlocked.increment 字段 在...
ios 多執行緒訪問共享資源
什麼是共享資源,一塊資源可能會被多個執行緒去共享,也就是多個執行緒可能會去訪問同一塊資源,也就是共享這一塊資源。比如說多執行緒去訪問同乙個物件,同乙個變數,同乙個檔案。當多個執行緒訪問同一塊資源的時候,很容易引發資料的錯亂和資料的安全問題。這個時候我們在乙個執行緒在訪問那塊資源的時候,我們需要把它個...
執行緒安全與共享資源
自併發程式設計網 ifeve.com 執行緒安全與共享資源 畢冉校對 丁一 允許被多個執行緒同時執行的 稱作執行緒安全的 執行緒安全的 不包含競態條件。當多個執行緒同時更新共享資源時會引發競態條件。因此,了解j a執行緒執行時共享了什麼資源很重要。public void somemethod pub...