Problem was that, for backwards compatibility, all applications ran in a single pre-emptively scheduled task that cooperatively scheduled between them. You could write additional tasks that got scheduled preemptively, but they couldn’t make all system calls (https://developer.apple.com/library/archive/documentation/Ca...)
A lot more, eventually. System 8.6 brought a fully pre-emptive kernel with multi processing (http://macos9lives.com/smforum/index.php?topic=3656.0)
Problem was that, for backwards compatibility, all applications ran in a single pre-emptively scheduled task that cooperatively scheduled between them. You could write additional tasks that got scheduled preemptively, but they couldn’t make all system calls (https://developer.apple.com/library/archive/documentation/Ca...)