Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вопрос по WCF ConcurrencyMode
|
|||
|---|---|---|---|
|
#18+
Привет всем. Много читал статей про ServiceBehaviorAttribute но никак не могу понять, если у меня Код: plaintext 1. стоит ли дать Код: plaintext 1. и вообше какие плюсы и минусы ConcurrencyMode.Multiple, или же где и какой mode лучше использовать? Извените если вопрос глупый просто никак не пойму. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 09:49 |
|
||
|
Вопрос по WCF ConcurrencyMode
|
|||
|---|---|---|---|
|
#18+
скачайте книгу Essential Windows Communication Foundation Стива Резника, там страниц на 10 расписано какой мод когда использовать со всякими сравнительными табличками и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 11:23 |
|
||
|
Вопрос по WCF ConcurrencyMode
|
|||
|---|---|---|---|
|
#18+
Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 11:36 |
|
||
|
Вопрос по WCF ConcurrencyMode
|
|||
|---|---|---|---|
|
#18+
Paradoxx должно помочь. Сам недавно пытался разобраться с этими атрибутами, краткое резюме на русском: InstanceContextMode - определяет сколько экземпляров сервисного класса будут создаваться для обработки запросов клиента; ConcurrencyMode - определяет сколько потоков будет использовать диспетчер запросов для обращения к экземплярам сервисного класса. В связи с вышеизложенным возможны "бессмысленные" сочетания, например: ConcurrencyMode = Single (диспетчеризируем запросы в одном потоке) и InstanceContextMode = PerCall (на каждый запрос создаем отдельный экземпляр сервисного класса) - результат должен настораживать, т.к. любой следующий запрос должен дожидаться окончания выполнения предыдущего (пока очередь диспетчера не освободится)... Случай топиккастера: ConcurrencyMode = Multiple и InstanceContextMode = PerCall - вполне "разумное" (ИМХО) сочетание для обеспечения высокой производительности сервиса (за счет отжирания ресурсов на дополнительные экземпляры обработчиков и поддержку переключения контекстов) и простоты реализации методов без синхронизации по потокам (за счет того, что каждому запросу/потоку создается свой отдельный экземпляр). Кажися так... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 12:02 |
|
||
|
Вопрос по WCF ConcurrencyMode
|
|||
|---|---|---|---|
|
#18+
а если так: Код: plaintext 1. смогут ли потоки обшатся друг с другом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 13:03 |
|
||
|
Вопрос по WCF ConcurrencyMode
|
|||
|---|---|---|---|
|
#18+
DEP1а если так: Код: plaintext 1. смогут ли потоки обшатся друг с другом? Тоесть ? Что имеете ввиду говоря обшатся друг с другом, ConcurrencyMode = Multiple, просто озночает что данный метод одновременно может быть вызван несколькими потоками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 13:11 |
|
||
|
Вопрос по WCF ConcurrencyMode
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. или будет вызван отдельном потоке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 13:18 |
|
||
|
Вопрос по WCF ConcurrencyMode
|
|||
|---|---|---|---|
|
#18+
wintellect Concurrency Background Since WCF is an asynchronous messaging platform. It makes extensive use of asynchronous I/O, and as a result, each received message may be dispatched to a receiving object by different threads. This feature allows WCF to use the CPU efficiently, and as a result, allows WCF applications to scale. The WCF programming model allows developers and administrators to choose how threads are utilized when messages are dispatched through the ConcurrencyMode instance property on the ServiceBehaviorAttribute type. The possible settings are: Single (default): only one thread may access the receiver object at a time Multiple: multiple threads may access the receiver object concurrently Reentrant: only one thread may access the receiver object at a time, but callbacks may re-enter that object on another thread (Useful when performing asynchronous I/O) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 13:31 |
|
||
|
Вопрос по WCF ConcurrencyMode
|
|||
|---|---|---|---|
|
#18+
DEP1 Код: plaintext 1. или будет вызван отдельном потоке? Multiple означает, что метод может одновременно вызываться разными потоками (читать запросами к сервису). если поставить Single, и сделать метод бесконечно долгим, а потом вызвать, то второй вызов метода никогда не начнётся (в смысле сам метод не запустится). под никогда понимать - пока таймаут не вывалит в Multiple - метод будет выполняться параллельно в двух потоках ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 13:31 |
|
||
|
Вопрос по WCF ConcurrencyMode
|
|||
|---|---|---|---|
|
#18+
ок понятно спасибо всем за ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2009, 13:37 |
|
||
|
Вопрос по WCF ConcurrencyMode
|
|||
|---|---|---|---|
|
#18+
Приведу результат своего исследования принципов обработки запросов клиентов, в зависимости от того, какой аттрибут выставлен у сервисного объекта. Поведение сервисного объекта (объектов), в основном зависит от трех аттрибутов: InstanceContextMode, ConcurrencyMode, UseSynchronizationContext. В след. таблице показано влияние этих аттрибутов на порядок обработки запросов: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ICM - аттрибут InstanceContextMode CM - аттрибут ConcurrencyMode USC - аттрибут UseSynchronizationContext MClient - MultiClient - условное название ситуации, когда к хосту присоединены несколько клиентов, и они параллельно делают запросы. Плюс означает, что все запросы обрабатываются параллельно (в разных потоках), минус - ставятся в очередь (обрабатываются одним, главным потоком). MCall - MultiCall - условное название ситуации, когда один клиент делает несколько параллельных запросов к хосту (из разных потоков, либо методы контракта помечены как IsOneWay). Плюс означает, что все запросы обрабатываются параллельно (в разных потоках), минус - ставятся в очередь (обрабатываются одним, главным потоком). Scheme - порядок обработки очереди запросов, в случае когда сначала один клиент делает несколько параллельных запросов, потом второй несколько паралельных: 1-2-1-2 - сначала первый запрос первого клиента, потом первый запрос второго клиента, потом второй запрос первого клиента, потом второй запрос второго клиента и т.д., 1-1-2-2 - сначала обрабатываются все запросы первого клиента, потом все запросы второго клиента и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2009, 19:05 |
|
||
|
Вопрос по WCF ConcurrencyMode
|
|||
|---|---|---|---|
|
#18+
После нормализации таблицы получилась такая картина: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2009, 19:35 |
|
||
|
|

start [/forum/topic.php?fid=19&msg=35946361&tid=1397890]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 273ms |
| total: | 407ms |

| 0 / 0 |
