http://kennyw.com/work/indigo/178
ConcurrencyMode : Specifies whether a service class supports single-threaded or multi-threaded modes of operation.
InstanceContextMode: Specifies the number of service instances available for handling calls that are contained in incoming messages.
The default InstanceContextMode is InstanceContextMode.PerSession, and the default ConcurrencyMode isConcurrencyMode.Single.
For InstanceContextMode.Singleton, you will get one method call at a time since you only have a single instance.
For InstanceContextMode.PerCall or PerSession, ServiceModel will spin up extra threads up to a throttle in order to handle extra requests.
When you have ConcurrencyMode == ConcurrencyMode.Multiple, threading comes heavily into play. WCF willcall into your instance on multiple threads unless you are using InstanceContextMode.PerCall.
Scenario 1: InstanceContextMode.Single+ConcurrencyMode.Single
Result: 100 sequential invocations of the service method on one thread
Scenario 2: InstanceContextMode.Single+ConcurrencyMode.Multiple
Result: N concurrent invocations of the service method on N threads, where N is determined by the service throttle.
Scenario 3:InstanceContextMode.PerCall+Any ConcurrencyMode
Result: N concurrent invocations of the method on N service instances, where N is determined by the service throttle