WCF 第五章 并发和实例(服务行为)
并發是一個多少個任務可以同時執行的度量,以任務(請求,工作,事務,以及類似的)的形式度量。執行時間是一個任務多長時間完成的度量,以時間(毫秒,秒,其他的時間單位等)度量。吞吐量是在一個指定時間里可以完成多少個任務的度量,以任務/時間(請求/秒, 事務/分,等等)的形式度量。吞吐量是關于并發和執行時間的函數。
??有兩種方式來增加吞吐量:減少執行時間或者增加并發量。減少一個獨立任務的執行時間可以通過改變任務調度間隔算法或者添加額外的硬件資源,所以WCF對這些都無能為力。并發可以通過并行執行任務來實現。WCF有兩種控制并發的行為: InstanceContextMode 和 ConcurrencyMode.
??InstanceContextMode服務行為用來控制實例而且可以設置成以下三種值:
?? ? Single. 服務類的一個實例處理所有接收到的請求。這實現了一個單例。
?? ? PerCall. 為每個接收到的請求創建一個服務類的實例。
?? ? PerSession. 每個客戶端會話創建一個服務類實例。當使用不支持會話的信道時,所有的服務調用與PerCall一樣,即便是InstanceContextMode被設置成PerSession.
??默認設置下,當一個不支持會話的綁定被使用時,InstanceContextMode.PerSession 降級為PerCall,指導WCF為每個用戶(實際上是代理)創建一個新的服務類實例。
??ConcurrencyMode服務行為用來控制一個服務實例內部的線程并發。默認設置,ConcurrencyMode.Single,指導WCF在某一時刻旨在服務類的實例中執行一個線程。這個行為可以被設置成三個值之一:
?? ?Single. 在一個時刻只有一個線程可以訪問服務類。這是最安全的設置因為服務操作不必擔心線程安全。
?? ?Reentrant. 在一個時刻僅有一個線程可以訪問服務類,但是這個線程可以離開類并在稍后返回繼續。
?? ?Multiple. 多個線程可以同步訪問服務類。這個設置要求類創建在線程安全基礎上。
??使用這兩個設置,InstanceContextMode和ConcurrencyMode,它們一起可以幫助你定制一個服務的實例和并發以便于你可以定位特殊的性能需求。
??表5.1 聯合InstanceContextMode和ConcurrencyMode
轉載于:https://www.cnblogs.com/danielWise/archive/2010/12/01/1893864.html
總結
以上是生活随笔為你收集整理的WCF 第五章 并发和实例(服务行为)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基金投资如何赚钱的 注意基金持仓情况
- 下一篇: 支付宝体验金能花吗