題目有點(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è)試代碼:

萬(wàn)碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開(kāi)發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

     [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)論