高併發軟件設計的幾種方式

本文就高併發軟件設計中可以考慮使用的一些方法做如下總結:

 1)多線程有利於提高CPU佔用率,因爲軟件本身的線程越多,在和系統上其他線程爭奪CPU資源時就能分配到更多執行資源,同時也能提高業務處理的併發性。

 2)非阻塞IO能夠在IO操作條件不成熟時不阻塞在IO調用處,返回繼續其他代碼的執行,過一陣再進行IO嘗試。異步IO能在IO操作執行時不阻塞在IO調用處,返回繼續其他代碼的執行,等IO操作結束後通過信號等機制拿到通知事件,然後再繼續IO操作後續執行。

 3)actor模式通過在actor間傳送消息來進行同步和事件驅動,一方面使得各個actor能夠最大限度的併發執行,避免了阻塞等待。另一方面降低了actor間的耦合,在actor本身業務層避免了鎖的使用,從而避免了死鎖、臨界區訪問等問題的發生。

 4)協程通過把一個線程劃分成多個任務來串行執行,一方面以寫同步代碼容易度來達到異步代碼的高效率。另一方面通常一個任務進行異步IO時要讓出這個線程的執行權,進行線程切換,如果採用協程方式,在這個時候可就以把線程的執行權讓給線程內的其他協程,目的也是儘量讓線程在時間片用完時再切換,減少切換次數。

(完)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章