allow user to specify NIO thread pools