In a uniprocessor system, a large number of threads appear to be running in parallel. This is accomplished by rapidly switching between threads.