Java – Preemptive & Non Preemptive
In preemptive multitasking, the operating system sets a specific/fix time with the technique named time slicing for each thread or process. That is each thread /process is allowed to execute only for a certain amount of time fixed by the operating system. When the amount of time assigned to those processes get complete, operating system stops or suspend that process and allow another process to take over processor for its execution.
In non-preemptive multitasking, when a certain thread/process is allowed to execute, it does not allow any process to execute/take over processor until it gets completed.
In this type, other process gets a chance only when running thread yields (give) control willingly to waiting processes.