What is the difference between multithreading and multitasking? What about multiprogramming? Multiprocessing?
Created Sep 20, 2000
Multithreading is running multiple "lightweight" processes (threads of execution) in a single process / task / program. See What is the difference between a lightweight and a heavyweight process? for more detail on lightweight vs. heavyweight processes.
Multiprogramming is essentially a synonym for multitasking (though multitasking connotes sharing more resources than just the CPU, and is the more popular term).
Most Java implementations will split threads among different processors if they're running on an SMP box.