天天看點

python如何解決高并發_隻有Java能做高并發嗎?Python和c#如何解決高并發問題?

現在高并發的解決方案都非常成熟了,不僅是Java能做好,Pyton和C#也是毫無問題的!個人比較擅長C#,就分享下C#的高并發處理方式(非系統架構,僅從開發角度)。

1,異步程式設計

.NET 4.5 及以上架構中引入的async/await關鍵字,異步程式設計已經非常友善了,異步程式設計有兩個好處:不阻塞主線程(比如UI線程),提高服務端應用的吞吐量。

2 并行程式設計

并行程式設計的出現實際上是随着CPU有多核而興起的,目的是充分利用多核CPU的計算能力。并行的支援主要靠.NET 4.0引入的任務并行庫和并行LINQ。

3 響應式程式設計

這個了解的人可能不多,其實響應式程式設計把事件流看作資料流,資料流是從IEnumable中拉取的,而事件流是從IObservable推送給你的。為什麼響應式程式設計可以實作并發呢?這是因為Rx做到線程不可知,每次事件觸發,後續的處理會從線程池中任意取出一個線程來處理。且可以對事件設定視窗期和限流。

4 資料流程式設計

資料流(DataFlow)程式設計可能大家就更陌生了,不過還是有些常用場景可以使用資料流來解決。資料流其實是在任務并行庫(TPL)上衍生出來的一套處理資料的擴充(也結合了異步的特性),TPL也是處理并行程式設計中任務并行和資料并行的基礎庫。

再然後還有Actor模型,大家接觸的更少就不分享了。.NET經過多年的發展,目前已經非常豐富全面甚至備援了,大家有關心的,請關注我,持續更新最新的.NetCore學習!