If num is a value greater than zero, the thread pool serializes all messages from each connection. It is not necessary to enable this feature in a thread pool whose maximum size is one thread. In a multi-threaded pool, enabling serialization allows requests from different connections to be dispatched concurrently while preserving the order of messages on each connection. Note that serialization has a signficant impact on latency and throughput. See
Section 28.9 for more information on thread pools. If not defined, the default value is zero.
A communicator creates two thread pools: the client thread pool dispatches AMI callbacks and incoming requests on bidirectional connections, and the server thread pool dispatches requests to object adapters.
num is the initial and also minimum number of threads in the thread pool. The default value is one for both properties.
Multiple threads for the client thread pool are only required for nested AMI invocations, or to allow multiple AMI callbacks to be dispatched concurrently.
num is the maximum number of threads for the thread pool. Thread pools in Ice can grow and shrink dynamically, based on an average load factor. Thread pools do not grow larger than the number specified by
SizeMax, and they do not shrink to a number of threads smaller than the value specified by
Size.
The default value for SizeMax is the value of
Size, meaning that by default, thread pools do not grow dynamically.
Whenever num threads are active in a thread pool, a "low on threads" warning is printed. The default value for
SizeWarn is 80% of the value specified by
SizeMax.
num is the stack size (in bytes) of threads in the thread pool. The default value is zero meaning the operating system's default is used.