When multi-threaded program execution occurs on a multiple core system (multiple uP, or multiple multi-core uP) threads can run concurrently , or in parallel as different threads may be split off to separate cores to share the workload. This is one example of parallel processing.