Parallel使用
生活随笔
收集整理的這篇文章主要介紹了
Parallel使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Parallel的靜態For,ForEach和Invoke方法
Parallel是對Task的封裝,目的是簡化一些常見的編程情形中任務Task的使用,它內部使用Task。
以上三者的編程情形:
Parallel.For(0,1000,i=>DoWork(i));//指定某個操作的執行次數
Parallel.ForEach(collection,item=>DoWork(item));//利用集合collection中的每一項item執行并發操作。
Parallel.Invoke(
()=>Method1(),
()=>Method2(),
()=>Method3());//并發執行一些方法
注意:
1.如果任何操作拋出未處理的異常,Parallel方法最后會拋出一個AggregateException
2.并發的前提條件:
1)工作項必須能并行之行
2)避免過多的資源爭用,會導致上下文切換過于頻繁和鎖爭用問題。
3.Parellel本身有開銷,所以如果并發執行的每一項都能很快執行,那么不應該使用并發執行。
應用并發的場景:
1)IO限制
計算不復雜,但是需要等待操作完成,如訪問數據庫等耗時較長的操作就是IO限制。
2)計算限制
計算過于復雜,執行計算的線程需要耗很長時間才能結束計算。如果等待這個線程完成再執行別的操作,那么可能等很長時間
總結
以上是生活随笔為你收集整理的Parallel使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 选择合适的查毒时机
- 下一篇: rtorrent ubuntu端命令行种