MaxScale can use an arbitrary number of worker or routing threads. The number of threads that MaxScale should use can be specified in the configuration file, either as a fixed number or as auto in which case MaxScale will use as many threads as there are CPU cores in the system. It never makes sense to use more threads than what there are CPU cores in the machine MaxScale is running on. Currently the number of threads cannot be changed at runtime.
Being able to change the number of threads used by MaxScale has not been particularly important as the number of CPU cores will not change when you are running on real hardware. However, since MaxScale increasingly is run in a docker container that assumption is no longer true.
Using docker update it is possible to change at runtime the number of CPUs available to a particular container. Thus, the number of CPUs available to MaxScale can no longer be assumed to be fixed after startup.
It would be a powerful feature if MaxScale would automatically adjust to the number of CPUs available to the docker container it is running in.