What about: Runtime.getRuntime().availableProcessors() as the default pool size?

http://stackoverflow.com/questions/4759570/finding-number-of-cores-in-java