It is tempting to use the Thread.setPriority() option in
Java. However for many applications this is more a comment for the developer
than something which will make a measurable difference. esp. with multi-core
systems.
If you have plenty of free CPU, every thread which can
run will run. The OS has no reason not to run a low priority thread or process
when it has free resources.
This priority only extends to raw CPU. Threads compete equally for CPU cache, heap space, CPU to memory bandwidth, file cache, disk IO, network IO and everything else. If any of these resource are in competition, they are all equal.
To set a high priority on Windows you need to be an administrator and on Linux you need to be root to set the priority of a thread. Different Implementations and operating systems can ignore this hint.
If your application is heavily CPU bound, using every
core, not using any other system resources significantly like IO or memory and
your OS doesn't ignore the hint, the thread priority might make a difference.
If in doubt, I wouldn't bother setting it because someone might think it does something.
No comments:
Post a Comment