A brief history of threads and threading
Первые Mac 1984 года с одноядерным процессором Motorola 68000 выполняли только одно приложение за раз. Переломным моментом стал Switcher (1985), позволявший переключаться между программами, но не запускать их одновременно. В 1987 году MultiFinder представил кооперативную многозадачность, где приложения добровольно уступали процессорное время — однако плохо написанный код мог заблокировать систему.
С появлением A/UX (1988) и Multiprocessing Services (1996) macOS перешла к вытесняющей многозадачности, где планировщик ОС сам распределяет ресурсы. К 2000 году Power Mac G4 с двумя процессорами и Mac OS X принесли поддержку потоков (threads) — легковесных задач в рамках процесса. Сегодня приложение (process) имеет главный поток и может создавать дополнительные, разделяя память, но с отдельными стеками. Это позволяет эффективно использовать многоядерные процессоры современным Mac.