When, why, and how to multithread in Flutter