A brief history of threads and threading
6 hours ago
- #ProcessorEvolution
- #Multitasking
- #MacHistory
- The original 128K Mac (1984) had a single Motorola 68000 processor (8 MHz) and could run only one app at a time.
- Andy Hertzfeld's Switcher (1985) allowed switching between apps but still ran one at a time.
- MultiFinder (1987) introduced cooperative multitasking, later integrated into System 7 (1991).
- Cooperative multitasking requires tasks to yield processing time; preemptive multitasking uses a scheduler.
- Classic Mac OS's Process Manager launched apps in cooperative multitasking, risking processor hogging by misbehaving tasks.
- A/UX (1988) brought Unix and preemptive multitasking to Macs, later added to Mac OS in System 7.5.3 (1996).
- Mac OS X (2000) introduced preemptive multitasking and multiple thread types (Mach, POSIX, Java, Cocoa, Carbon).
- Power Mac G4 (2000) was Apple's first dual-processor Mac; Power Mac G5 (2005) introduced dual-core processors.
- Grand Central Dispatch (GCD, 2009) manages task queues for symmetric multiprocessing (SMP) and optimizes core allocation.
- Apple silicon Macs (2020) use GCD to manage Performance (P) and Efficiency (E) cores based on Quality of Service (QoS).
- Modern macOS supports up to 32 CPU cores, a significant evolution from the single-core 68000 processor.