Oh that can have a multitude of reasons. One are “infinite loops”. Meaning in order to make programming easier there is usually the option in programming languages to say “make that X times” or “to this, until a condition is met”.
Now if for whatever reason that condition can never be reached idk it’s a loop counting files in a folder and every iteration of the loop creates a new file or something like that, so everything after the loop isn’t executed because the loop is still busy. So the system might think “ok the task is difficult, allocate MORE POWER”. So it throws more power at it (delaying even more actions) but the task is still impossible and so the one program that is in a problematic condition halts the rest.
Another could be race conditions like if a can’t move on before b is calculated and b can’ move on before a is calculated so each of them is waiting for the other to finish and neither can finish without the other.
Or as others have mentioned bottlenecks, like how if you hold a water bottle upside down not all the water immediately drops out but how the small exit point leads to the water stopping itself.
Latest Answers