I've been toying with the idea of multithreading in my games logic and I've come to an impass. I'm far from an expert on multithreaded programming (in fact, I'm a total novice) and I know that multithreading will not speed up my program only allow it to be more responsive but I've been wondering exactly what would be considered overkill?
I was thinking of having all of my in-game objects (entities) doing their logic in their own threads. However, there's the possibility for thousands of entities so would it make sense to create a new thread for every Entity? This seems like overkill and I can see it even slowing down the program and even possibly causing problems with the operating system.
So I suppose the question now is how can I do multithreading with my entities such that the program remains responsive (e.g., continuing to render frames even if the logic for all entities hasn't been completed). Would it make sense to through an update loop into a thread that simply iterates through a list of Entities telling them to perform their logic?