This difference may not seem like much, but it represent a 7.25-percent increase in calling time. Unless you license and ship HotSpot with your app, there's no telling what VM will be on the target platform, and of course you want as little as possible of the execution speed of your program to be dependent on the VM that's executing it. Concurrent multithreading systems give the appearance of several tasks executing at once, but these tasks are actually split up into chunks that share the processor with chunks from other tasks. The following figure illustrates the issues. In parallel systems, two tasks are actually performed simultaneously.
Parallelism requires a multiple-CPU system.
A program that uses multiple threads running in parallel on multiple processors will run much faster. Though Java permits threading to be implemented entirely in the VM, at least in theory, this approach would preclude any parallelism in your application. The net result would be that no two Java threads running under the same VM instance would ever run in parallel, even if you had multiple CPUs and your VM was the only active process. Two instances of the VM running separate applications could run in parallel, of course, but I want to do better than that. For a great in-depth look at multithreading in general and the implementation of multithreading both in and with Java in particular, this one's a must.