What are main differences between cooperative multitasking and preemtive multitasking?

Preemptive multitasking is when the operating system preemptively interrupts a current task without cooperation. Cooperative multitasking is when the system must be programmed to do tasks.