上篇博文中,我們介紹了Thread和ThreadPool:
多線程異步編程示例和實(shí)踐-Thread和ThreadPool
本文中我們繼續(xù),說一下TPL(Task Parallel Library, 簡稱TPL)。
在實(shí)際的開發(fā)中,使用線程池相當(dāng)復(fù)雜,線程的異常捕獲、傳遞以及編排這些問題實(shí)現(xiàn)起來都很復(fù)雜。
從 .NET Framework 4 開始,TPL 是編寫多線程代碼和并行代碼的首選方法。顧名思義,任務(wù)并行庫 (TPL) 基于任務(wù)的概念。 術(shù)語“任務(wù)并行”是指一個或多個獨(dú)立的任務(wù)同時運(yùn)行。 任務(wù)表示異步操作,在某些方面它類似于創(chuàng)建新線程或 ThreadPool 工作項(xiàng),但抽象級別較高。 任務(wù)的提供有兩個主要好處:
1). 系統(tǒng)資源的使用效率更高,可伸縮性更好。
在后臺,任務(wù)排隊(duì)到 ThreadPool,ThreadPool 已使用登山等算法進(jìn)行增強(qiáng),這些算法能夠確定并調(diào)整到可最大化吞吐量的線程數(shù)。 這會使任務(wù)相對輕量,可以創(chuàng)建很多任務(wù),啟用細(xì)化并行
2). TPL提供了一組簡單豐富的 API,這些 API 支持等待、取消、繼續(xù)、可靠的異常處理、詳細(xì)狀態(tài)、自定義計(jì)劃等功能。降低多線程編碼和并行編程的復(fù)雜度,提升開發(fā)效率。
1. 創(chuàng)建和運(yùn)行任務(wù)
多次執(zhí)行,輸出結(jié)果:
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26