合作型多任務( cooperative multitasking )允許執行多個任務,但分享 CPU 是程序(而非操作系統)的責任。如果有一個程序決定咬住 CPU 不放,其它程序就停擺了。
搶先式多任務( preemptive multitasking )操作系統能夠強迫應用程序把 CPU 分享給其他人,程序員不需要什么額外的努力。雖然這個減少了程序員的工作,也不會因為某個程序拒絕分享 CPU 而造成其他程序 hang 住,但是它使得各個線程之間的執行順序不可預測,從而導致了 race condition 等一系列問題。