1. A computer-implemented method for improving performance in multi-threaded processing engines, the method comprising: receiving a first task to be executed by a processing engine; dividing the first task into a first set of subtasks, wherein each subtask in the first set of subtasks is smaller than a threshold size; issuing at least one subtask from the first set of subtasks to the processing engine for processing; receiving a second task to be executed by the processing engine, wherein the second task has a higher priority than the first task; dividing the second task into a second set of subtasks, wherein each subtask in the second set of subtasks is smaller than the threshold size; preempting the first task by issuing at least one subtask from the second set of subtasks to the processing engine for processing prior to issuing all of the subtasks from the first set of subtasks to the processing engine for processing; and issuing at least one additional subtask from the first set of subtasks to the processing engine for processing after issuing the at least one subtask from the second set of subtasks to the processing engine.