The OS already needs to properly schedule tasks of different load intensities and match them to the available cores, which might already be running different processes. An application has strictly less visibility into whats going on overall in the system, what else is using resources etc., so I don't see how it can decide any better? All it needs to do is set the proper priorities, so the OS scheduler knows whats more important.