In Warcraft III, everything is scheduled to run on things we refer to as "threads". Each thread can only run a particular number of byte code operations before it will halt (the rest of the actions won't continue). This would be really problematic if everything were run on one thread, because the limit would easily be reached. Thankfully, triggers, as well as some other functions, start new "threads" (resetting the limit).
That's why I am using ForForce(). It will run the function input on a separate thread, allowing it to have its own limit apart from the main thread. You can also use triggers (trigger evaluate), ExecuteFunc(), Timers, etc.
The bj_FORCE_PLAYER[0] is just a force containing player 1. You can really use any index, because you don't really care about the enumerated player. ForForce is used to iterate actions over several players (like a loop). We only need the loop once, because we are only looking to start the function on a separate thread and nothing else. That's why we just use a force with just one component, so it will only run it once.