The neuray system internally uses a thread pool to distribute the load among the processor cores. The size of the thread pool is configurable. Additionally the number of threads which can be active at any time can be configured up to the licensed number of cores
The number of active threads can be changed dynamically at runtime. This can be used to balance the processor load against the embedding applications needs or other applications needs on the same host. If you decrease the number of threads it may take a while until this limitation will be enforced because running operations will not be aborted.
The application can use any number of threads to call into the Iray API. Those threads will exist in addition to the threads in the thread pool. The neuray scheduling system will however include those threads in the count of active threads and will limit the usage of threads from the thread pool accordingly.