初學多執行緒(一) 保護共享資源

2021-07-09 16:14:35 字數 804 閱讀 1150

1.共享資源未被保護,被多個執行緒並行訪問,會發生資源分配上的衝突,兩種方法保護共享資源

ps:共享資源像靜態類中的字段,方法

how to protect shared resources from concurrent access?

1.使用 interlocked.increment(字段) 

//在system.threading

class

program

static

void addtomillion()}}

執行結果:the total = 30000

ticks = 117078

2.使用lock對code session 進行鎖定

//使用lock時要建立乙個私有的靜態object物件

// private static object obj = new object();

class program

static

object obj = new

object();

static

void addtomillion()}}

}執行結果:total= 3000000

ticks = 334236

2.interlocked類只能對int/long型別的字段addition/subtraction(increment , decrement ,add etc),這個類包含自增自減的方法,所以interlocked.increment(total),中total不用寫成total++

多執行緒共享資源案例

最近研究了一下多執行緒,主要針對於多執行緒共享同一資源,和多執行緒執行各自的資源 其實主要要就是搞清楚資源的含義 你要操作什麼,什麼就是執行緒的資源!1.先說一下多執行緒執行各自的資源 執行各自的資源從字面意思就可以看出來執行緒執行的資源互不干涉,各自執行各自的。案例如下 package testt...

ios 多執行緒訪問共享資源

什麼是共享資源,一塊資源可能會被多個執行緒去共享,也就是多個執行緒可能會去訪問同一塊資源,也就是共享這一塊資源。比如說多執行緒去訪問同乙個物件,同乙個變數,同乙個檔案。當多個執行緒訪問同一塊資源的時候,很容易引發資料的錯亂和資料的安全問題。這個時候我們在乙個執行緒在訪問那塊資源的時候,我們需要把它個...

執行緒安全與共享資源

自併發程式設計網 ifeve.com 執行緒安全與共享資源 畢冉校對 丁一 允許被多個執行緒同時執行的 稱作執行緒安全的 執行緒安全的 不包含競態條件。當多個執行緒同時更新共享資源時會引發競態條件。因此,了解j a執行緒執行時共享了什麼資源很重要。public void somemethod pub...