題目有點(diǎn)意思,大家都知道Dictionary<K,V>不是線程安全的類(lèi)型,而List<T>是線程安全的嗎?在今天之前大叔沒(méi)有去測(cè)試過(guò),而就在今天也是一個(gè)VIP問(wèn)我,說(shuō)在我的代碼中使用了并行,然后為一個(gè)List賦值,說(shuō)的直接一點(diǎn)就是:List元素是全局的,在各個(gè)線程里分別去操作它,測(cè)試數(shù)據(jù)是1萬(wàn)條,而在測(cè)試結(jié)果之后,我發(fā)展List元素最終的數(shù)組是9000多條,也就是說(shuō)被并發(fā)了幾千條數(shù)據(jù),呵呵,下面咱們看一下源代碼吧!
測(cè)試代碼:
[TestMethod] public void TestMethod0() { List<int> intList = new List<int>(); var result = Parallel.ForEach(Enumerable.Range(1, 10000), (val) => { intList.Add(val); }); if (result.IsCompleted) { Console.WriteLine("intList.Count():" + intList.Count); } }
網(wǎng)友評(píng)論