中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

WCF中的InstanceContext和ConcurrencyMode是什么

發布時間:2021-12-15 09:31:21 來源:億速云 閱讀:164 作者:iii 欄目:編程語言

這篇文章主要講解了“WCF中的InstanceContext和ConcurrencyMode是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“WCF中的InstanceContext和ConcurrencyMode是什么”吧!

先照本宣科一下,WCF的實例通過InstanceContext屬性來指定,可以的取值是 Single, PerSession, PerCall。并發通過ConcurrencyMode屬性來指定,可以的取值是 Single, Multiple, Reentrant。它們的組合就有3*3=9種。Reentrant的并發模式實質上就是Single的一個特殊情況最后再討論。InstanceContext 用于控制服務對象的個數,ConcurrencyMode用于控制服務對象是否可以同時服務多個請求。

好了我們開始舉例,假如我們的服務是做早點,InstanceContext決定了我們有幾個師傅來做早點,而ConcurrencyMode決定了每個師傅只能一個一個的做還是同時把要做的一起做。下面開始分情況逐一說明:

1. InstanceContext  = Single & ConcurrencyMode = Single

InstanceContext = Single  我們這個早點鋪就一個師傅

ConcurrencyMode = Single 師傅一次只能做一件事兒

不難想象如果買早點的人多了就會排著長長的隊,而且如果前面有一個人要5套早點,那后面的人只能等那個人完事兒才能輪到自己。對師傅能力要求不高,一次做好一件事兒就好。

2.InstanceContext = Single & ConcurrencyMode = Multiple

InstanceContext = Single 我們這個早點鋪就一個師傅

ConcurrencyMode = Multiple 師傅同時做所要做的事兒

這個是早點鋪老板想要的情況,雇最少的人干最多的事,但是對做早點的師傅要求非常高,一次要做好很多事。不能人一多就做亂了把張三的燒餅少做一個,把李四的豆漿多做了一碗等。

3.InstanceContext = PerSession & ConcurrencyMode = Single

InstanceContext = PerSession 為每個顧客提供一個師傅專門服務(顧客來時現招,顧客走后就解雇)

ConcurrencyMode = Single 某一時刻只有一個師傅工作,每個師傅一次只能做一件事兒。

這在現實生活中不可能存在但在計算機中卻非常常見,所以我的例子只是說明關鍵問題,請不要太較真。這時第個顧客都會有一個專門的師傅來服務,但我們只有一個廚房并且只能容下一個師傅,給張三服務的師傅做早點時別的師傅只能等待。師傅一次只能做一樣東西,如果一個顧客要了很多的東西,那師傅一樣一樣的來做。所以可以還是單線程只是有多個師傅而已。對師傅能力要求不高,一次做好一件事兒就好。

4.InstanceContext = PerSession & ConcurrencyMode = Multiple

InstanceContext = PerSession 為每個顧客提供一個師傅專門服務(顧客來時現招,顧客走后就解雇)

ConcurrencyMode = Multiple 所有的師傅同時工作,每個師傅可以同時做所要做的所有事兒

這在現實生活中也是不可能存在的。這時每個顧客都會有一個專門的師傅來服務,并且師傅們都可以同時工作,并且師傅可以同時做所有要做的所有早點。對師傅的要求較高,因為只是同時處理一個顧客的所有早點。

5. InstanceContext = PerCall & ConcurrencyMode = Single

InstanceContext = PerCall 為每個顧客要的每個需求都提供一個師傅專門服務(顧客提出要求時現招,師傅做完后就被解雇)

ConcurrencyMode = Single 某一時刻只有一個師傅工作,每個師傅只用做一件事兒。

這在現實生活中也是不可能存在的。這下師傅更多了,與情況3一樣在某一時刻只能有一個師傅工作,不同的是師傅只用做一件事兒。對師傅能力要求不高,能做好一件事兒就好。

6. InstanceContext = PerCall & ConcurrencyMode = Multiple

InstanceContext = PerCall  為每個顧客要的每個需求都提供一個師傅專門服務(顧客提出要求時現招,師傅做完后就被解雇)

ConcurrencyMode = Multiple 所有的師傅同時工作,每個師傅只用做一件事兒。

這在現實生活中也是不可能存在的。這時客戶的滿意度理論上是最高的,顧客的每個要求都有師傅在做,而且所有的師傅在同時做事兒。當然這對早點鋪的老板要付出的代價是最大的。對師傅能力要求不高,能做好一件事兒就好。

7. InstanceContext = * & ConcurrencyMode = Reentrant

這種情況比較特殊,假如我們不生產早點全是從別的早點鋪去買來然后再倒手給顧客,傳說中的騎驢。這時假如顧客說出需要什么需要5秒鐘的時間,我們打電話向其它店索要,其它店再把東西送到需要1分鐘,再把送來的東西給到顧客手中需要5s的時間。可見店內處理時間為10s,大量的時間在調貨的時間(調用別的服務)。所以這時比較合理的處理是,利用調貨的時間來處理后面顧客的需求,在這1分鐘的時間里可以處理20個顧客的需求,并且20個調貨請求也已經發送。等到第1個顧客的貨送到后再轉回來為其完成剩下的服務,這樣可以節省很多后面顧客等待的時間。InstanceContext無論取什么值都與ConcurrencyMode = Single的差不多只是針對有外部調用的情況有所優化。

感謝各位的閱讀,以上就是“WCF中的InstanceContext和ConcurrencyMode是什么”的內容了,經過本文的學習后,相信大家對WCF中的InstanceContext和ConcurrencyMode是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

wcf
AI

镇安县| 德格县| 金堂县| 光山县| 仲巴县| 涡阳县| 白水县| 湘阴县| 寿宁县| 集贤县| 宁武县| 锦屏县| 江西省| 锡林郭勒盟| 牡丹江市| 思茅市| 古交市| 措美县| 淮北市| 潮安县| 南漳县| 南川市| 临沧市| 淅川县| 名山县| 巴南区| 新蔡县| 泰安市| 淮安市| 察哈| 资源县| 吉安县| 天峻县| 阿坝县| 四平市| 瑞丽市| 诏安县| 洪洞县| 桃源县| 伊通| 宜丰县|