Task switching lets a single-core processor appear to run multiple tasks concurrently by executing a portion of one, then switching to another. This is an illusion of concurrency, unlike multiple tasks running in parallel on separate cores. section 1.1.1
Figure 1.1. Two approaches to concurrency: parallel execution on a dual-core machine versus task switching on a single-core machine
Compare task switching on a single core with parallel execution on two cores. section 1.1.1
When a system has more threads than cores, switching threads can increase cache pressure. If a thread moves between cores, its cache lines may also need to be transferred, adding performance costs. section 8.2.4
