Hi,
Can't help you with Java code, but as far as I know, NA solvers don't use multiple CPU cores. However, when you run the GP tools in ArcGIS (ArcMap), you can choose to run it in the background mode = I think here multiple cores can be used.
Another way to implement multithreading would be to implement a programmatic procedure (not sure about Java, but C# or VB.NET should work) that would run the chosen solver operation many times simultaneously yet having different input data = I would think of this as having multiple command windows.
You might consider taking advantage of GP services based on ArcGIS Server as well, because the Server can indeed use multiple CPU cores but only when multiple requests were submitted from clients (you can choose to increase the number of service instances to take advantage of CPU power).