From Switcher and MultiFinder, with Process Manager and Thread Manager in Classic Mac OS, to Pthreads, NSThreads, and Grand Central Dispatch.
multitasking
Swift 6 claims built-in support for writing asynchronous and parallel code. But these are very different, and that for multithreading appears elusive.
How Swift supports cooperative multitasking using async/await. How to call asynchronous code from within synchronous code, and does it also multithread code in parallel?
Understanding terms, including process, thread and task. How the assigned Quality of Service, or QoS, is used to determine how threads are allocated to cores.
From running multitasking on a single CPU, MultiFinder and cooperative multitasking, massively parallel systems using Transputers, to building concurrency into the Swift language.
By segregating macOS background tasks on Efficiency cores, M1 Macs can run user apps unfettered on their Performance cores. And that feels really fast.
How the M1’s asymmetric cores can run background tasks more efficiently, or deliver high performance, according to Quality of Service.
macOS doesn’t work like it used to. With heuristic task dispatching and sensitivity to factors like quality of network service, troubleshooting can get fiendishly difficult.
In my experience, the results of such tinkering are nice, in the most devalued sense of the word, and far from cool.
